bitmap-ViewPager加载图片内存溢出怎么解决?

问题描述

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

bitmap-ViewPager加载图片内存溢出怎么解决?的相关文章

Android加载图片内存溢出问题解决方法

  这篇文章主要介绍了Android加载图片内存溢出问题解决方法,本文讲解使用BitmapFactory.Options解决内存溢出问题,需要的朋友可以参考下 1. 在Android软件开发过程中,图片处理是经常遇到的. 在将图片转换成Bitmap的时候,由于图片的大小不一样,当遇到很大的图片的时候会出现超出内存的问题,为了解决这个问题Android API提供了BitmapFactory.Options这个类. 2. 由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出.Bi

Android加载图片内存溢出问题解决方法_Android

1. 在Android软件开发过程中,图片处理是经常遇到的. 在将图片转换成Bitmap的时候,由于图片的大小不一样,当遇到很大的图片的时候会出现超出内存的问题,为了解决这个问题Android API提供了BitmapFactory.Options这个类. 2. 由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出.Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存OOM,只有在BitmapFactory加载图片时使用BitmapFact

android 解决ViewPager加载大量图片内存溢出问题_Android

1.大家都知道为ViewPager构建适配器继承PagerAdapter,怎么构建就不说了.Viewpager会默认加载当前页和当前页的左右两页.一开始当前页是下标0,所以一开始默认加载第0页(指下标,下同)和第1页.当你向右滑动,当前页为第1页时,ViewPager会加载第2页,这时一共有3页存在(第0,1,2页).再向右滑动,当前页为第2页时,会移除第0页,加载第3页,同理向左滑动当前页为第1页时,会移除第3页.这么说应该懂了吧. 知道了上面的原理,就可以让ViewPager始终只加载3页的

android 解决ViewPager加载大量图片内存溢出问题

1.大家都知道为ViewPager构建适配器继承PagerAdapter,怎么构建就不说了.Viewpager会默认加载当前页和当前页的左右两页.一开始当前页是下标0,所以一开始默认加载第0页(指下标,下同)和第1页.当你向右滑动,当前页为第1页时,ViewPager会加载第2页,这时一共有3页存在(第0,1,2页).再向右滑动,当前页为第2页时,会移除第0页,加载第3页,同理向左滑动当前页为第1页时,会移除第3页.这么说应该懂了吧. 知道了上面的原理,就可以让ViewPager始终只加载3页的

java BufferedImage加载图片内存溢出

问题描述 有个需求是生成一张1700*2338像素的图片并在图片上添加文字,大小大概是160k左右,单独在main方法里面用java.awt.image.BufferedImage类生成图片是没问题的,但是在web后台一调用BufferedImage的构造方法就报java.lang.OutOfMemoryError:Javaheapspace,内存溢出,代码如下:intwidth=1700;intheight=2338;BufferedImagebuffImage=newBufferedImag

eclipse使用fresco框架加载图片,内存没有释放.求大神指导

问题描述 eclipse使用fresco框架加载图片,内存没有释放.求大神指导 02-01 17:11:36.785: W/unknown:CloseableReference(17517): Finalized without closing: 429970e8 42997048 (type = CloseableStaticBitmap) 02-01 17:11:36.785: W/unknown:CloseableReference(17517): Finalized without cl

Android ViewPager加载图片效果

目前项目中需要用到ViewPager加载图片,现在在此记录一下. 首先先看布局文件:activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.c

Android使用ViewPager加载图片和轮播视频

作为Android基础组件之一,大家对viewpager已经很熟悉了,网上也有很多使用viewpager来加载图片的案例.但是像微信那样点击图片,可以轮播显示图片和视频的例子却没找到.正巧项目中有需求,可以就花时间写了下,现在给一下核心代码,希望对有此需求的同学们起一个抛砖引玉的作用.话不多说了,上代码: 以下是initData的代码 public void initData() { //把聊天界面的图片和视频找出来,并加到数组中,并在 //并根据传进来的position来找到视频或图片在数组中

WPF 加载大量图片内存溢出

问题描述 小弟在用WPF做一个项目,但是图片素材过多,而且素材大小不可以改变,图片素材一共有接近4G,加载的时候总是出现使用一会新图片就没法继续显示了(报了没有足够内存),请问各位前辈,是否有什么办法可以动态加载图片资源呢?先在的做法是直接BitmapImage(newUri(path))的方法创建一个BitmapImage,然后直接调用这个BitmapImage,发现这么调用,使用过的图片资源是没法及时释放掉的,请问有什么方法能及时释放图片资源,或者可以实现动态加载图片资源呢?感激不尽 解决方