Android Bitmap和Drawable的对比
发布时间 - 2026-01-11 01:34:45 点击率:次Android Bitmap和Drawable的对比

Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。
Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。
A bitmap is a Drawable. A Drawable is not necessarily a bitmap. Like all thumbs are fingers but not all fingers are thumbs.
Bitmap是Drawable . Drawable不一定是Bitmap .就像拇指是指头,但不是所有的指头都是拇指一样.
The API dictates: API规定:
Though usually not visible to the application, Drawables may take a variety of forms: 尽管通常情况下对于应用是不可见的,Drawables 可以采取很多形式: Bitmap: the simplest Drawable, a PNG or JPEG image. Bitmap: 简单化的Drawable, PNG 或JPEG图像. Nine Patch: an extension to the PNG format allows it to specify information about how to stretch it and place things inside of it. Shape: contains simple drawing commands instead of a raw bitmap, allowing it to resize better in some cases. Layers: a compound drawable, which draws multiple underlying drawables on top of each other. States: a compound drawable that selects one of a set of drawables based on its state. Levels: a compound drawable that selects one of a set of drawables based on its level. Scale: a compound drawable with a single child drawable, whose overall size is modified based on the current level.
| 对比项 | 显示清晰度 | 支持透明色 | 支持色相色差调整 | 支持像素操作 |
|---|---|---|---|---|
| Bitmap | 相同 | 是 | 是 | 是 |
| Drawable | 相同 | 是 | 否 | 否 |
Drawable在内存占用和绘制速度这两个非常关键的点上胜过Bitmap
- Drawable和Bitmap之间可以互相转换,Drawable占用内存远小于Bitmap。
- setImageDrawable使用资源文件;setImageBitmap使用bitmap图片,该图片可能是读取本地相册,或者从资源文件转换而来。
- setImageResource()和setImageBitmap()
//setImageResource() public void setImageResource (int resId)//占用UI thread; // setImageBitmap() ImageView iv; String fileName = "/data/data/com.test/aa.png"; Bitmap bm = BitmapFactory.decodeFile(fileName); iv.setImageBitmap(bm); //占用内存 // setImageBitmap() Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); imageView.setImageBitmap(image); // Bitmap转换成Drawable Bitmap image = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); BitmapDrawable bitmapDrawable = new BitmapDrawable(image); imageView.setImageDrawable(bitmapDrawable); // 结论:Bitmap是Drawable . Drawable不一定是Bitmap
小结
Bitmap: 简单化的Drawable, PNG 或JPEG图像.
Drawable在内存占用和绘制速度这两个非常关键的点上胜过Bitmap
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# android
# Bitmap和Drawable的区别
# Bitmap和Drawable
# Android中一种巧妙的drawable.xml替代方案分享
# Android RippleDrawable 水波纹/涟漪效果的实现
# Android自定义Drawable之在Drawable中部指定透明区域方法示例
# 浅谈Android中Drawable使用知识总结
# Android开发基于Drawable实现圆角矩形的方法
# Android自定义Drawable实现圆角效果
# Android Drawable和Bitmap的转换实例详解
# Android DrawableTextView图片文字居中显示实例
# Android Drawable必备知识小结
# Android drawable微技巧
# 你不知道的drawable细节
# 这两个
# 点上
# 都是
# 也有
# 就像
# 而来
# 也很
# 希望能
# 比较好
# 它可以
# 谢谢大家
# 转换成
# 情况下
# 文件转换
# 效率高
# forms
# allowing
# resize
# simplest
# variety
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
Laravel Fortify是什么,和Jetstream有什么关系
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
Swift中swift中的switch 语句
jQuery validate插件功能与用法详解
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
如何在局域网内绑定自建网站域名?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
中山网站推广排名,中山信息港登录入口?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
利用python获取某年中每个月的第一天和最后一天
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
如何在Windows环境下新建FTP站点并设置权限?
手机网站制作与建设方案,手机网站如何建设?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Python函数文档自动校验_规范解析【教程】
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
iOS发送验证码倒计时应用
如何实现javascript表单验证_正则表达式有哪些实用技巧
网站页面设计需要考虑到这些问题
MySQL查询结果复制到新表的方法(更新、插入)
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
什么是javascript作用域_全局和局部作用域有什么区别?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel如何自定义错误页面(404, 500)?(代码示例)
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
JS弹性运动实现方法分析
JS中对数组元素进行增删改移的方法总结
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
潮流网站制作头像软件下载,适合母子的网名有哪些?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Laravel如何使用withoutEvents方法临时禁用模型事件
Windows Hello人脸识别突然无法使用
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Android使用GridView实现日历的简单功能
微信小程序 闭包写法详细介绍
如何在Windows服务器上快速搭建网站?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
如何用IIS7快速搭建并优化网站站点?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Laravel怎么实现模型属性的自动加密

