Drawable drawable = getResources().getDrawable(R.drawable.xxx);
canvas
BitmapDrawable bitmapdrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.xxx);
code
第一種方式orm
實際上,先是把drawable轉換爲bitmapdrawable,再將bitmapdrawable轉換爲bitmap,比較簡單ci
Bitmap bitmap = bitmapdrawable.getBitmap();
第二種方式資源
須要從新繪圖,較爲麻煩,不過有些須要重繪,大多數均可以使用第一種,因此,仍是推薦第一種(懶癌患者推薦)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; }
第一種方式it
Drawable drawable = new BitmapDrawable(bitmap);
第二種方式map
BitmapDrawable bd= new BitmapDrawable(getResource(), bitmap);
PS:bitmapdrawable是drawable的子類,能夠直接使用drawable中的方法方法