Android中Bitmap和Drawable相互转换

在开发中经常需要将Bitmap和Drawable两中资源进行相互转换。转换的方法有很多种方式,下面将一一介绍。

在开发中经常需要将Bitmap和Drawable两中资源进行相互转换。转换的方法有很多种方式,下面将一一介绍。

1、Drawable转成Bitmap

// 方式一:
Resources res=getResources();
Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.sample_0);

// 方式二:
public static Bitmap drawableToBitmap(Drawable drawable) {
    Bitmap bitmap = Bitmap.createBitmap(
        drawable.getIntrinsicWidth(),
        drawable.getIntrinsicHeight(),
        drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);
    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
    drawable.draw(canvas);
    return bitmap;
}

2、Bitmap转成Drawable

Drawable drawable =new BitmapDrawable(bmp);

3、从资源中获取Bitmap

Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);

4、Bitmap转成byte[]

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();

5、byte[]转成Bitmap

public Bitmap Bytes2Bimap(byte[] b){
    if(b.length!=0){
        return BitmapFactory.decodeByteArray(b, 0, b.length);
    }
    else {
        return null;
    }
}
谁不会休息,谁就不会工作。 —— 列宁
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号