Android Bitmap操作详解:转换、压缩与保存
4星 · 超过85%的资源 需积分: 47 172 浏览量
更新于2023-03-16
6
收藏 48KB DOC 举报
"这篇文章除了介绍Android中Bitmap对象的基本用法,还涉及了如何从Drawable转换为Bitmap,从资源加载Bitmap,Bitmap与byte数组之间的转换,保存Bitmap到文件,图片缩放以及ImageView的scaleType属性的使用。"
在Android开发中,Bitmap是用于处理图像的主要类,它代表了像素数据。以下是一些关于Bitmap操作的关键知识点:
1. Drawable到Bitmap转换:`drawableToBitmap()`方法将Drawable对象转换为Bitmap,这在需要对Drawable进行像素级操作时非常有用。通过获取Drawable的宽度、高度和颜色格式,然后创建一个新Bitmap,并在一个Canvas上绘制Drawable。
2. 从资源加载Bitmap:使用`BitmapFactory.decodeResource()`可以从项目的资源文件中加载Bitmap。这个方法可以确保正确的尺寸和配置,同时避免内存问题。
3. Bitmap到byte[]转换:`Bitmap2Bytes()`方法将Bitmap压缩成PNG或JPEG格式的字节数组,以进行存储或网络传输。通过创建一个ByteArrayOutputStream,然后调用Bitmap的`compress()`方法完成转换。
4. byte[]到Bitmap转换:`Bytes2Bimap()`方法接收一个字节数组,如果数组不为空,就使用`BitmapFactory.decodeByteArray()`还原成Bitmap。
5. 保存Bitmap到文件:`saveBitmap2file()`方法将Bitmap以JPEG格式保存到指定路径。使用`compress()`方法,指定压缩格式和质量,然后写入到FileOutputStream。
6. 图片缩放:要根据特定尺寸缩放Bitmap,可以创建一个Matrix并设置缩放比例,然后使用`Bitmap.createBitmap()`方法创建新的缩放后的Bitmap。这在适应不同屏幕尺寸或优化内存使用时很有用。
7. ImageView的scaleType:`android:scaleType`属性控制图片如何适应ImageView的大小。不同的值有不同的效果,例如`CENTER_CROP`会保持原图比例填充整个ImageView,`CENTER_INSIDE`会保持原图比例,完全包含在ImageView内,`FIT_CENTER`则会按比例缩放并居中显示。
此外,文章还提供了缩放图片的实用函数`zoomBitmap()`和将Drawable转换为Bitmap的方法`drawableToBitmap()`。对于复杂形状如圆角图片,可以通过创建带有圆角的Bitmap,例如`getRoundedCornerBitmap()`方法可以生成带有圆角的Bitmap效果。
这些基本的Bitmap操作是Android开发者处理图像时经常用到的技巧,理解和掌握它们能帮助提高应用的性能和用户体验。
126 浏览量
139 浏览量
2012-03-01 上传
2023-05-04 上传
106 浏览量
106 浏览量
chinawangw
- 粉丝: 6
- 资源: 24
最新资源
- Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结
- Delphi下用IntraWeb开发WEB程序应用实战
- Jsp+tomcat+mysql for WindowsXP
- microsoft c# 认证题库
- Eigenfaces for Face Detection
- Linux网络文件系统分析(NFS)
- 数据通信基础知识.pdf
- 最佳46款免费软件(同步精译版)
- JAVA语言版数据结构与算法
- PC_MODBUS;PC与PLC.doc
- DWR 入門與應用-林信良
- 关于spring的pdf书
- 学习oracle笔记
- 基于Matlab的遗传算法实现
- 12学会FreeBSD安装笔记
- proteus完整教程(英文版).pdf