我们有时候会遇到Drawable转化为Bitmap或者Bitmap转化为Drawable的情况,那么应该如何转化呢?其实非常简单。
Drawable转化为Bitmap
Drawble转Bitmap有两种方法,第一种方法较为灵活,可以调整图片的质量,第二种方式相对简单。看下面的代码:
方法一
1 2 3 4 5 6 7 8 9 10 11 12 |
private Bitmap drawableToBitamp(Drawable drawable){ int w = drawable.getIntrinsicWidth(); int h = drawable.getIntrinsicHeight(); Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565; bitmap = Bitmap.createBitmap(w,h,config); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); drawable.draw(canvas); } |
方法二
1 2 3 4 5 |
private Bitmap drawableToBitamp(Drawable drawable){ BitmapDrawable bd = (BitmapDrawable) drawable; return bd.getBitmap(); } |
Bitmap转化为Drawable
1 2 3 4 |
public Drawable bitmapToDrawable(Bitmap bitmap) { return new BitmapDrawable(bitmap); } |