一、Bitmap转Drawable


Bitmap bm=xxx; //xxx根据你的情况获取

BitmapDrawable bd=new BitmapDrawable(bm);
因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。

二、 Drawable转Bitmap

转成Bitmap对象后,可以将Drawable对象通过Android的SK库存成一个字节输出流,最终还可以保存成为jpg和png的文件。
Drawable d=xxx; //xxx根据自己的情况获取drawable

BitmapDrawable bd = (BitmapDrawable) d;

Bitmap bm = bd.getBitmap();
最终bm就是我们需要的Bitmap对象了。



// 从资源中获取Bitmap
public static Bitmap getBitmapFromResources(Activity act, int resId) {
Resources res = act.getResources();
return BitmapFactory.decodeResource(res, resId);
}

// byte[] → Bitmap
public static Bitmap convertBytes2Bimap(byte[] b) {
if (b.length == 0) {
return null;
}
return BitmapFactory.decodeByteArray(b, 0, b.length);
}

// Bitmap → byte[]
public static byte[] convertBitmap2Bytes(Bitmap bm) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray();
}

// 1)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapBy Canvas(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);
// canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}

// 2)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapSi mple(Drawable drawable){
BitmapDrawable bd = (BitmapDrawable) drawable;
return bd.getBitmap();
}

// Bitmap → Drawable
public static Drawable convertBitmap2Drawable(Bitmap bitmap) {
BitmapDrawable bd = new BitmapDrawable(bitmap);
//

更多相关文章

  1. Android(安卓)FrameWork——ActivityManager框架
  2. Android开发重修
  3. Android中关于Volley的使用(三)认识Volley的架构
  4. Android(安卓)SharedPreferences的使用.
  5. Android(安卓)学习入门最佳Demo--自定义View 属性,RelativeLayout
  6. Android(安卓)在低版本sdk中没有getSupportedPreviewSizes和getS
  7. Android初级教程获取手机系统联系人信息
  8. Android的连接服务器
  9. android内存泄露优化总结

随机推荐

  1. Android(安卓)ListView根据项数的大小自
  2. Android(安卓)installed app, never used
  3. android 耳机左右声道接反,软件如何修正
  4. android调用平台功能
  5. android如何限制只能输入指定的字符
  6. android framework service开发原理,以震
  7. Android:intent用法实例
  8. Android(安卓)Edittext 显示光标 获取焦
  9. Android(安卓)Sqlite ANR 问题解决及其事
  10. android usb流程