BitmapFactory.decodeResource
只能解码图片格式文件(如 .png
, .jpg
, .bmp
等)。如果 R.drawable.shap_round_30
是一个 shape drawable
(例如 XML
文件),它无法被解码为 Bitmap
。
解决方法: 使用 Bitmap
绘制工具将 shape drawable
转换为 Bitmap
:
Drawable drawable = getResources().getDrawable(R.drawable.shap_round_30);
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);