/** * 将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); } }