Bitmap获取图片内存溢出
来源:互联网 发布:淘宝客服结束语大全 编辑:程序博客网 时间:2024/05/16 06:33
从本地sd卡获取图片内存溢出解决方法
public Bitmap getBitmap(String path) { File file = new File(path); Bitmap resizeBmp = null; BitmapFactory.Options opts = new BitmapFactory.Options(); // 数字越大读出的图片占用的heap越小 不然总是溢出 opts.inSampleSize = 2; resizeBmp = BitmapFactory.decodeFile(file.getPath(), opts); return resizeBmp; }
如果图片是全屏显示的话
opts.inSampleSize = i;
i数值不要太大,如果是屏幕上的小图片的话尽情呀吧,i=1,压缩倍数是1倍,i=2压缩倍数是4倍,因为i是它边的压缩,整个图的话肯定的边长的平方么,大家懂得。
从资源文件中获取图片时也可能出现内存溢出,尤其是在Listview之类的适配器中进行调用的时候。
BitmapFactory.Options opts = new BitmapFactory.Options();opts.inSampleSize =5;
</pre><pre name="code" class="java"><span style="white-space:pre">mBgBitmap = BitmapFactory.decodeResource(getActivity().getResources(), imgv[position],opts);t.setImageBitmap(mBgBitmap);</span>
imgv是存放资源文件的数组,t是Imgview。
这块还有一个问题就是内存释放,我用的感觉比较好的是下面这个方法,可以试一下,本人也是一介菜鸟,原理 还没理解,只不过感觉可以解决问题
t.setImageBitmap(null);<span style="white-space:pre"></span>if(mBgBitmap != null && !mBgBitmap.isRecycled()) <span style="white-space:pre"></span> { <span style="white-space:pre"></span>System.out.println("释放内存!");<span style="white-space:pre"></span>mBgBitmap = null; <span style="white-space:pre"></span> } <span style="white-space:pre"></span>System.gc();
先将所要赋值的控件置为空,防止有关联的文件出现非法释放
再将bitmap置为空,最后释放c端代码中的内存
0 0
- Bitmap获取图片内存溢出
- Android Bitmap图片处理,防止内存溢出
- 加载图片Bitmap时内存溢出/压缩图片
- android bitmap内存溢出
- bitmap时候内存溢出
- bitmap 内存溢出
- Android bitmap 内存溢出
- Bitmap内存溢出问题
- android bitmap内存溢出
- Android Bitmap内存溢出
- Bitmap 内存溢出
- Android Bitmap内存溢出
- android Bitmap内存溢出
- android bitmap设置图片内存溢出的解决神器
- 内存溢出应对:把图片固定大小赋值给bitmap
- 获取网络图片之---内存溢出解决方案
- bitmap内存溢出的问题
- Android Bitmap 内存溢出解决方法
- ZooKeeper基本原理
- 黑马程序员-Java基础学习-反射技术
- 工具_SublimeText
- Swift学习之 -- 函数
- Eclipse汉化
- Bitmap获取图片内存溢出
- 学习笔记--获取ios当前时间
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- 实现自定义CollectionEditor的Propertygrid的重置功能
- TextField相关基础用法
- 关于地图的总结
- JAVA中的优先级队列PriorityQueue
- 【Android】课程表布局实现(支持动态添加课程)
- 取余与周期函数