Android Bitmap操作详解:转换、压缩与保存

4星 · 超过85%的资源 需积分: 47 129 下载量 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开发者处理图像时经常用到的技巧,理解和掌握它们能帮助提高应用的性能和用户体验。