Android Drawable转换为Bitmap两种方案
程序员文章站
2022-02-16 11:56:13
...
很多时候我们会通过网络加载了一张位图、如果想拿到这张位图的Bitmap、有两种办法、至于那种好、可能要看是在什么情况下了、我个人两种方法都使用过、最后还是选择了第一种方法、兼容性会强一点
方案一
private Bitmap drawableToBitamp(Drawable drawable) { Bitmap bitmap = null; int h = drawable.getIntrinsicHeight(); System.out.println("Drawable转Bitmap"); Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; bitmap = Bitmap.createBitmap(w,h,config); //注意,下面三行代码要用到,否在在View或者surfaceview里的canvas.drawBitmap会看不到图 Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); drawable.draw(canvas); return bitmap; }
方案二
private Bitmap drawableToBitamp(Drawable drawable) { BitmapDrawable bd = (BitmapDrawable) drawable; Bitmap bitmap = bd.getBitmap(); return Bitmap; }