我在imageview中使用了九个可绘制的补丁,并使用下面的代码我想获取Bitmap但是会发生此错误。
Bitmap stickerBitmap = ((BitmapDrawable) Front.getDrawable()).getBitmap();
答案 0 :(得分:0)
您无法直接将NinePatchDrawable
投射到BitmapDrawable
,因为这是两种不同的不兼容的可绘制类型。
如果你想从非BitmapDrawable获取一个Bitmap,你必须用Canvas将它绘制到一个Bitmap上:
Drawable drawable = Front.getDrawable();
Bitmap stickerBitmap = Bitmap.createBitmap(Front.getWidth(),
Front.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(stickerBitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
请注意,必须对ImageView进行布局,使其大小非为零。