/** * 將view轉成bitmap * * @param view * @return */ public static Bitmap loadBitmapFromView(View view) { if (view == null) { return null; } view.measure(MeasureSpec.makeMeasureSpec(YUtils.dip2px(context, 60f), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec( YUtils.dip2px(context, 80f), MeasureSpec.EXACTLY)); // 這個方法也很是重要,設置佈局的尺寸和位置 view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); // 生成bitmap Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); // 利用bitmap生成畫布 Canvas canvas = new Canvas(bitmap); // 把view中的內容繪製在畫布上 view.draw(canvas); return bitmap; }
public class YUtils { /** * 根據手機的分辨率從 dp 的單位 轉成爲 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根據手機的分辨率從 px(像素) 的單位 轉成爲 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } }