猿问

如何将可绘制的图形转换为位图?

如何将可绘制的图形转换为位图?

我想设置一个Drawable作为设备的壁纸,但是所有的壁纸功能都接受Bitmap只有。我不能用WallpaperManager因为我是2.1级的。

而且,我的绘图文件是从web下载的,并且不驻留在R.drawable.


慕桂英4014372
浏览 486回答 3
3回答

绝地无双

public&nbsp;static&nbsp;Bitmap&nbsp;drawableToBitmap&nbsp;(Drawable&nbsp;drawable)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;Bitmap&nbsp;bitmap&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(drawable&nbsp;instanceof&nbsp;BitmapDrawable)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitmapDrawable&nbsp;bitmapDrawable&nbsp;=&nbsp;(BitmapDrawable)&nbsp;drawable; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(bitmapDrawable.getBitmap()&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;bitmapDrawable.getBitmap(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;if(drawable.getIntrinsicWidth()&nbsp;<=&nbsp;0&nbsp;||&nbsp;drawable.getIntrinsicHeight()&nbsp;<=&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap&nbsp;=&nbsp;Bitmap.createBitmap(1,&nbsp;1,&nbsp;Bitmap.Config.ARGB_8888);&nbsp;//&nbsp;Single&nbsp;color&nbsp;bitmap&nbsp;will&nbsp;be&nbsp;created&nbsp;of&nbsp;1x1&nbsp;pixel &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bitmap&nbsp;=&nbsp;Bitmap.createBitmap(drawable.getIntrinsicWidth(),&nbsp;drawable.getIntrinsicHeight(),&nbsp;Bitmap.Config.ARGB_8888); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;Canvas&nbsp;canvas&nbsp;=&nbsp;new&nbsp;Canvas(bitmap); &nbsp;&nbsp;&nbsp;&nbsp;drawable.setBounds(0,&nbsp;0,&nbsp;canvas.getWidth(),&nbsp;canvas.getHeight()); &nbsp;&nbsp;&nbsp;&nbsp;drawable.draw(canvas); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;bitmap;}

眼眸繁星

这会将BitmapDrawable转换为位图。Drawable&nbsp;d&nbsp;=&nbsp;ImagesArrayList.get(0);&nbsp;&nbsp;Bitmap&nbsp;bitmap&nbsp;=&nbsp;((BitmapDrawable)d).getBitmap();
随时随地看视频慕课网APP

相关分类

Android
我要回答