Bitmap和drawable的互相转换

本文介绍了Android开发中Bitmap与Drawable之间的转换方法。包括如何将Bitmap转换为Drawable以用于背景设置,以及两种Drawable转Bitmap的方法:一是创建新的Bitmap,二是直接获取BitmapDrawable中的Bitmap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在代码时遇到了些问题,当发送网络请求获取图片数据将图片,但是返回的是bitmap数据但是设置background需要drawable才能用所以我需要将bitmap转换为drawable,写下此片总结方便以后查阅。有的情况不需要转类型,其实在我的案例中将图片设置match_parent,然后使用帧布局将图片当做背景也能实现效果。

一、Bitmap转Drawable

  Bitmap bm=xxx; //xxx根据你的情况获取
  BitmapDrawable bd=BitmapDrawable(bm);

  Android开发网提示因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。


二、Drawable转Bitmap

1,根据已有的Drawable创建一个新的Bitmap:

 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);}

2,直接从现有的Drawable中取出Bitmap:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值