package com.manuelmaly.hn.util; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.view.Display; import android.view.View; import android.view.Window; import android.view.WindowManager; public class DisplayHelper { private static Float scale; public static int dpToPixel(int dp, Context context) { if(scale == null) scale = context.getResources().getDisplayMetrics().density; return (int)((float)dp * scale); } @SuppressWarnings("deprecation") public static BitmapDrawable bitmapWithConstraints(int bitmapResource, Context ctx, int dpConstraintWidthAndHeight, int padding) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inScaled = false; Bitmap bitmapOrg = BitmapFactory.decodeResource(ctx.getResources(), bitmapResource, options); int width = bitmapOrg.getWidth(); int height = bitmapOrg.getHeight(); int newWidth = dpToPixel(dpConstraintWidthAndHeight, ctx) - 2*dpToPixel(padding, ctx); int newHeight = newWidth; float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width, height, matrix, true); return new BitmapDrawable(resizedBitmap); } @SuppressWarnings("deprecation") public static int getScreenWidth(Activity a) { Display display = a.getWindowManager().getDefaultDisplay(); return display.getWidth(); } @SuppressWarnings("deprecation") public static int getScreenHeight(Activity a) { Display display = a.getWindowManager().getDefaultDisplay(); return display.getHeight(); } public static void setDialogParams(Dialog d, Activity a, boolean hasTitleBar, View layout, int marginHorizontalDP) { if (!hasTitleBar) d.requestWindowFeature(Window.FEATURE_NO_TITLE); d.setContentView(layout); WindowManager.LayoutParams lp = d.getWindow().getAttributes(); lp.copyFrom(d.getWindow().getAttributes()); lp.dimAmount = 0.8f; lp.width = getScreenWidth(a) - 2 * dpToPixel(marginHorizontalDP, a); } }