##从资源中得到drawable Drawable drawable = getResources().getDrawable(R.drawable.xxx);
##drawable转换bitmapdrawble BitmapDrawable bitmapdrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.xxx);
##drawble转换为bitmapcanvas
-
第一种方式code
实际上,先是把drawable转换为bitmapdrawable,再将bitmapdrawable转换为bitmap,比较简单orm
Bitmap bitmap = bitmapdrawable.getBitmap();
ci -
第二种方式资源
须要从新绘图,较为麻烦,不过有些须要重绘,大多数均可以使用第一种,因此,仍是推荐第一种(懒癌患者推荐)get
public static Bitmap drawableToBitmap(Drawable drawable) { // 取 drawable 的长宽 int w = drawable.getIntrinsicWidth(); int h = drawable.getIntrinsicHeight(); // 取 drawable 的颜色格式 Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; // 创建对应 bitmap Bitmap bitmap = Bitmap.createBitmap(w, h, config); // 创建对应 bitmap 的画布 Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); // 把 drawable 内容画到画布中 drawable.draw(canvas); return bitmap; }
##bitmap转换为drawableit
-
第一种方式class
Drawable drawable = new BitmapDrawable(bitmap);
-
第二种方式map
BitmapDrawable bd= new BitmapDrawable(getResource(), bitmap);
PS:bitmapdrawable是drawable的子类,能够直接使用drawable中的方法方法