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 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号