Drawable与Bitmap的联系与区别

在Android中,Drawable代表的是处理图像通用的类,它还有很多子类,其中一个就是BitmapDrawable。
Bitmap称作位图,后缀名通常为bmp。Bitmap是一个Drawable,但是Drawable不只仅仅包含Bitmap这一类图像。
Drawable转Bitmap:

private Bitmap bitmap;

private void drawableToBitamp(Drawable drawable)
    {
        BitmapDrawable bd = (BitmapDrawable) drawable;
        bitmap = bd.getBitmap();
    }

或者还有一种保险的方法:

private Bitmap bitmap;
private void drawableToBitamp(Drawable drawable)
    {
       int w = drawable.getIntrinsicWidth();
       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);
    }

Bitmap转Drawable:
Drawable drawable =new BitmapDrawable(bmp);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值