Android开发——Drawable与Bitmap知识

从资源中获得drawable

Drawable drawable = getResources().getDrawable(R.drawable.xxx);

drawable转换bitmapdrawble

BitmapDrawable bitmapdrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.xxx);

drawble转换为bitmap

第一种方式

实际上,先是把drawable转换为bitmapdrawable,再将bitmapdrawable转换为bitmap,比较简单

Bitmap bitmap = bitmapdrawable.getBitmap();

第二种方式

需要重新绘图,较为麻烦,推荐使用第一种

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转换为drawable

第一种方式

Drawable drawable = new BitmapDrawable(bitmap);

第二种方式

BitmapDrawable bd= new BitmapDrawable(getResource(), bitmap);

PS:bitmapdrawable是drawable的子类,可以直接使用drawable中的方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyxsw.html