Bitmap 和 Drawable 的区别及转换

定义

Drawable

A Drawable is a general abstraction for “something that can be drawn.”
在谷歌官方文档中的定义是: Drawable 是任何可以绘画对象的一个抽象

Bitmap

位图文件(Bitmap),扩展名可以是.bmp或者.dib。位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。 ——百度百科

区别

从上面的定义中,我们明显可以看出来,Drawable 的作用范围明显要大很多,Drawable 包括了 Bitmap,它还包括了 Shape,Layer 等。

两者在 Android 中的使用

绝大多数的 Android UI Framework 中使用的是 Drawable,而不是 Bitmap,View 控件能使用任何的 Drawable 作为背景。比如说 ImageView 有 setImageDrawable() 和 setImageBitmap() 两个方法,但是当你调用 setImageBitmap() 时,程序内部将会把 Bitmap 包裹进 BitmapDrawable 中,下面是代码

public void setImageBitmap(Bitmap bm) {
    setImageDrawable(new BitmapDrawable(mContext.getResources(), bm));
}

Bitmap 2 Drawable

Drawable d = new BitmapDrawable(getResources(), bitmap);

Drawable 2 Bitmap

Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_resource);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值