问题描述
- 安卓 Drawable 转 bitmap
-
本人将后缀为png的图片放在res->drawable-hdpi下。现在想将其转换为bitmap然后作其他处理,看到网上很多的文章。
方法1------------------------------------
Resources res=getResources();
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.a);
Log.i(TAG, "2222"+bmp);方法2------------------------------------
Drawable drawable = getResources().getDrawable(R.drawable.a);
Bitmap bitmap = MainActivity.drawableToBitmap(drawable);
Log.i(TAG, "1111"+drawableToBitmap(drawable));public static Bitmap drawableToBitmap(Drawable drawable)
{
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, drawable.getOpacity() != PixelFormat.OPAQUE? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0,0,width,height);
drawable.draw(canvas);
return bitmap;}
打印出的log信息为
2222android.graphics.Bitmap@41069968
1111android.graphics.Bitmap@41069d98---------------------------------
我很想知道这两种方法有什么区别,查看api后,我的猜测是,第2种方法可以将各种格式的图片转换为bitmap,第1种方法只能将某些格式的图片转换为bitmap。很菜,很迷惑。求指导