问题描述
- ViewPager加载图片内存溢出怎么解决?
- @Override
public Object instantiateItem(View view int position) {
View mv = mListViews.get(position);
((ViewPager) view).addView(mv 0);
// 加载图片
ImageView iv = (ImageView) mv.findViewById(R.id.imageView);
try {//图片的名称
String name=DBManager.getInstance(context).getAll().get(position).getPhotoPath();
InputStream is = context.getAssets().open(name);
Bitmap bmp = BitmapFactory.decodeStream(is);
is.close();
iv.setImageBitmap(bmp);
} catch (IOException e) {
e.printStackTrace();
}
return mv;
}@Overridepublic void destroyItem(View view int position Object object) { View mv = mListViews.get(position); ImageView iv = (ImageView) mv.findViewById(R.id.imageView); BitmapDrawable drawbale=(BitmapDrawable) iv.getDrawable(); drawbale.getBitmap().recycle(); } 上面是代码 ,滑动多了会出现![图片说明](http://img.ask.csdn.net/upload/201501/05/1420422751_173680.png)
解决方案
BitmapFactory.Options opts=new BitmapFactory.Options();
//设置图片的宽和高都为原先图片的一半(压缩)
opts.inSampleSize=2;
mBitmap=BitmapFactory.decodeFile(图片地址 opts);
解决方案三:
压缩加载的图片,不用的Bitmap对象要释放掉,
解决方案四:
你这个应该是
InputStream is = context.getAssets().open(name);
Bitmap bmp = BitmapFactory.decodeStream(is);
这2句代码引起的,你可以异步把图片拿到然后在到ViewPager中加载
时间: 2024-08-19 22:10:26