Android 中 资源文件图片转 Bitmap 和 Drawable 以及相互转换的方法
发布时间
阅读量:
阅读量
Android 图片转换方法总结:
一、将 Bitmap 强制转换为 Drawable
通过强制转换将 Bitmap 转化为 Drawable 对象。
Drawable drawable = new BitmapDrawable(bmp);
代码解读
第二部分:将Drawable 转换为 Bitmap
方法一:通过-ZaRS框架中的decodeResource方法实现该转换过程
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
代码解读
方法二
根据Drawable创建一个新的Bitmap,封装一个方法:
public static Bitmap drawableToBitmap(Drawable drawable) {
int w = drawable.getIntrinsicWidth();//获取宽
int h = drawable.getIntrinsicHeight();//获取高
Bitmap.Config btmConfig =drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565;
Bitmap bitmap = Bitmap.createBitmap(w, h, btmConfig);
//绘制新的bitmap
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, w, h);
drawable.draw(canvas);
//返回bitmap
return bitmap;
}
代码解读
方法三 通过将Drable对象转换为BitmapDrawable来实现,并进而调用getBitmap方法获取
Drawable drawable =getResources().getDrawable(R.mipmap.ic_launcher);//获取drawable
BitmapDrawable bd = (BitmapDrawable) drawable;
Bitmap bm= bd.getBitmap();
代码解读
三、Bitmap 转换成 byte[]
封装方法
//Bitmap 转换成 byte[]
public static byte[] bitmapToBytes(Bitmap bitmap){
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
}
代码解读
四、byte[] 转化成 Bitmap
封装方法
public static Bitmap bytesToBitmap(byte[] b) {
if (b.length != 0) {
return BitmapFactory.decodeByteArray(b, 0, b.length); //返回bitmap
} else {
return null;
}
}
代码解读
全部评论 (0)
还没有任何评论哟~
