android ImageView 频繁切换图片 OOM
来源:互联网 发布:适合nodejs的cms 编辑:程序博客网 时间:2024/05/16 01:34
最近在帮一个朋友写一个android 软件,频繁的用ImageView 更换图片。
结果常常出现OOM
后来修改把ImageView加载图片自己来管理,问题解决了,不敢独享,拿出来与各位同学分享
private void showImage(int index) {
int resid = R.drawable.circle_01;
switch (index) {
case 1:
resid = R.drawable.circle_01;
break;
case 2:
resid = R.drawable.circle_02;
break;
case 3:
resid = R.drawable.circle_03;
break;
case 4:
resid = R.drawable.circle_04;
break;
case 5:
resid = R.drawable.circle_05;
break;
case 6:
resid = R.drawable.circle_06;
break;
case 7:
resid = R.drawable.circle_07;
break;
case 8:
resid = R.drawable.circle_08;
break;
case 9:
resid = R.drawable.circle_09;
break;
case 10:
resid = R.drawable.circle_10;
break;
case 11:
resid = R.drawable.circle_11;
break;
case 12:
resid = R.drawable.circle_12;
break;
}
//把历史的ImageView 图片对象(image_)释放
BitmapDrawable bitmapDrawable = (BitmapDrawable)image_.getBackground();
if(bitmapDrawable!=null){
Bitmap hisBitmap = bitmapDrawable.getBitmap();
if(hisBitmap.isRecycled()==false)
{
hisBitmap.recycle();
}
}
//上面的代码一定要做,否则不会超过30分钟可定会出现exit,当然我的timer设置的时间比较短。。。。。timer.schedule(task, 5, 5);
//下面代码是网上通常搜到的源码例子,但是不能解决,智能优化,只有加上上面的才能彻底解决内存的问题。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable =true; // bitmap can be purged to disk
options.inInputShareable =true;
Bitmap bm = BitmapFactory.decodeStream(getResources().openRawResource(
resid));
Drawable bd = new BitmapDrawable(getResources(), bm);
image_.setBackgroundDrawable(bd);
}
- android ImageView 频繁切换图片 OOM
- Android ImageView实现图片切换
- Android ImageView之切换图片
- Android ImageView——图片切换
- android之【代码实现ImageView图片切换】
- android ImageView 通过level-list 切换图片
- 切换imageview当中的图片
- Android之---ImagView显示图片(将一张图片按原图大小合理显示在imageView上,避免OOM)
- android ImageView图片缩放
- android ImageView图片缩放
- android Imageview 图片覆盖
- Android ImageView图片自适应
- Android ImageView图片自适应
- Android ImageView图片自适应
- Android ImageView图片自适应
- Android ImageView图片自适应
- Android ImageView图片自适应
- android ImageView制作图片
- hadoop生态系统的端口
- C和指针
- 《Java TCP/IP Socket编程》读书笔记(11)
- Clover 的使用方法解读
- Python 杂记
- android ImageView 频繁切换图片 OOM
- UIPickerView.h
- DB2用户及授权
- 二叉树的层次遍历
- android的广播broadcast和receiver && 广播接收器优先级的深入分析
- Python模块包中__init__.py文件的作用
- 《Java TCP/IP Socket编程》读书笔记(12)
- SqlServer索引原理分析
- SQL一个外连接查询的理解