[转帖]andorid小记读取Bitmap 的几种方式和优化内存溢出 ._Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3231 | 回复: 0   主题: [转帖]andorid小记读取Bitmap 的几种方式和优化内存溢出 .        下一篇 
q563725885
注册用户
等级:少校
经验:1134
发帖:98
精华:1
注册:2013-5-7
状态:离线
发送短消息息给q563725885 加好友    发送短消息息给q563725885 发消息
发表于: IP:您无权察看 2013-5-13 15:37:57 | [全部帖] [楼主帖] 楼主

想读取本地项目里的资源图片,但又不能用到R文件。查了很多资料终于找到了。

现总结以下几种读取Bitmap的方法。

    1.以文件流的方式,假设在sdcard下有 test.png图片

FileInputStream fis = new FileInputStream("/sdcard/test.png");
Bitmap bitmap  = BitmapFactory.decodeStream(fis);


   2. 以R文件的方式,假设 res/drawable下有 test.jpg文件

Bitmap  bitmap = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test);


  3.以ResourceStream的方式,但不用到R文件。

Bitmap.bitmap=BitmapFactory.decodeStream(getClass().getResourceAsStream(“/res/drawable/test.png”));


说明一下,我为什么用第三种方法读取Bitmap。

因为项目的要求啦,哈哈!废话。主要是方便把程序的资源图片插入到本地sqlite中,到时只需传入/res/drawable + 图片名就可以读取到 Bitmap啦。

还有一种情况值得考虑的,就是当图片资源太大的适合,会出现内存溢出。如何解决呢?

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;  //图片宽高都为原来的二分之一,即图片为原来的四分一
//以上代码可以优化内存溢出,但它只是改变图片大小,并不能彻底解决内存溢出。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论