Android Bitmap:加载与保存图像指南
需积分: 9 143 浏览量
更新于2024-09-14
收藏 58KB DOC 举报
"Android bitmap 相关内容涉及到Bitmap的创建、加载和本地保存,以及从网络获取Bitmap的方法。"
在Android开发中,Bitmap是用于表示图像数据的重要类,它不支持直接创建,而是需要通过BitmapFactory进行解码来获取。BitmapFactory提供了解析不同来源图像数据的功能,包括从资源文件、本地文件系统以及网络流中加载Bitmap。
1. 从资源文件加载Bitmap
当图像来源于项目的资源文件,如`R.drawable.tianjin`,可以使用`decodeResource()`方法加载Bitmap:
```java
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.tianjin);
```
这里,`getResources()`用于获取当前上下文的资源对象,`R.drawable.tianjin`是资源ID。
2. 从本地文件加载Bitmap
如果图像位于设备的文件系统中,例如 `/sdcard/dcim/tianjin.jpeg`,可以使用`decodeFile()`方法:
```java
Bitmap bmp = BitmapFactory.decodeFile("/sdcard/dcim/tianjin.jpeg");
```
3. 保存Bitmap到本地
要将Bitmap保存到本地,首先创建一个File对象表示目标文件路径,然后使用`compress()`方法将Bitmap压缩为JPEG或PNG格式写入到OutputStream中:
```java
File fImage = new File("/sdcard/dcim", "beijing.jpeg");
FileOutputStream iStream = new FileOutputStream(fImage);
Bitmap oriBmp = ...; // 原始Bitmap
oriBmp.compress(CompressFormat.JPEG, 100, iStream);
```
`CompressFormat.JPEG`表示压缩格式,100是质量参数,值越高质量越好,但文件也越大。
4. 从网络加载Bitmap
获取网络上的图片,首先需要构建URL,打开连接,然后通过InputStream读取网络数据,最后使用`decodeStream()`方法解码:
```java
String iconURI = "http://202.140.96.134:8080/FS-RSS/img/RN.png";
URL imgURL = new URL(iconURI);
URLConnection conn = imgURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bmp = BitmapFactory.decodeStream(bis);
```
在实际应用中,为了优化性能和避免内存问题,通常会使用异步加载和缓存策略,例如Picasso、Glide等库。
理解并熟练运用Bitmap的加载、保存和处理方法对于Android开发者来说至关重要,因为处理图像数据是许多应用程序的核心功能。同时,需要注意的是,由于Bitmap占用大量内存,因此在处理时要特别注意内存管理,避免导致内存泄漏或Out of Memory (OOM) 错误。可以通过调整Bitmap的配置(如SampleSize、InMemoryCache等)来优化内存使用。
2016-11-03 上传
2018-08-01 上传
2010-12-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-06-13 上传
ibwin
- 粉丝: 0
- 资源: 3
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦