Bitmap和Drawable区别及转换

占用内存绘制速度支持像素操作支持旋转缩放支持透明度
Bitmap支持支持支持
Drawable不支持支持支持

Bitmap含义:位图,文件格式一般为bmp
Drawable含义:Android下的图形对象,可以装载png、gif、jpg、bmp等格式的图像

Bitmap获取对象及获取属性:

Bitmap bmp = BitmapFactory.decodeResource(getResource(), R.drawable.icon);
h = bmp.getHeight();
w = bmp.getWidth();

Drawable获取对象及获取属性:

Drawable d = getResouce().getDrawable(R.drawable.icon);
h = d.getIntrinsicHeight();
w = d.getIntrinsicWidth();

注意:
1.Drawable有一个常用的子类BitmapDrawable用于两者间的转换
2.Drawable的内存占用和绘制效率优于Bitmap
3.Bitmap是Drawable的实体对象之一
4.Drawable其实是一个抽象类

Bitmap转Drawable常见的两种方法:

第一种:
Drawable d = new BItmapDrawable(bmp)Drawable d = new BItmapDrawable(bmp);

第二种:
BitmapDrawable d = new BitmapDrawable(getResource, bmp);

Drawable转Bitmap常见的两种方法:

第一种:
BitmapDrawable bd = new BitmapDrawable(d);
Bitmap bmp = bd.getBitmap();

第二种:
public static Bitmap drawableToBitmap(Drawable drawable){
	int w = drawable.getIntrinsicWidth():
	int h = drawable.getIntrinsicHeight();
	Bitmap.config config = drawable.getOpacity() != PixelFormat.OPAQUE ? 
				Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565;
	Bitmap bmp = Bitmap.createBitmap(w, h, config);
	Canvas canvas = new Canvas(bmp);
	drawable.setBounds(0,0,w,h);
	drawable.draw(convas);
	return bmp;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值