Android ViewPager大图片滑动避免内存溢出

ViewPager在项目中会经常用到,但是有时候在加载大图片的时候会引起内存溢出,接下来介绍一种方式,是的viewpager在加载图片

的时候可以有效的避免内存溢出

主要是在Viewpager的适配器中做处理,使得适配器只加载3张图片,大于3张图片就将多余的图片销毁

关键代码如下:

 1 private class MyAdapter extends PagerAdapter {
 2 
 3         @Override
 4         public int getCount() {
 5             return details_counts;
 6         }
 7 
 8         /**
 9          * 在此方法中加载GifView
10          * 其原理就是保持2-3个缓存view
11          */
12         @Override
13         public Object instantiateItem(View view, int position) {
14             ViewPager vp  = ((ViewPager) view);
15             ImageView mGifView = new ImageView(PalmShowNewCarShowCarPicture.this);
16             if((xinglu_counts+position)<carDetailAddress.size()){
17                 
18                 Bitmap bit=loadImageFromLocal(carDetailAddress.get(xinglu_counts+position));
19                 mGifView.setImageBitmap(bit);
20             }
21             
22             vp.addView(mGifView);
23             return mGifView;
24         }
25 
26         /**
27          * 再次处理销毁GifView
28          */
29         @Override
30         public void destroyItem(View arg0, int arg1, Object arg2) {((ViewPager) arg0).removeView((View) arg2);
31             //            ((GifView)arg2).destroy();
32             Log.d("ViewPager", "-<<销毁"+arg1+"页");
33         }
34 
35         @Override
36         public boolean isViewFromObject(View arg0, Object arg1) {
37             return arg0 == arg1;
38         }
39 
40         @Override
41         public void restoreState(Parcelable arg0, ClassLoader arg1) {
42 
43         }
44 
45         @Override
46         public Parcelable saveState() {
47             return null;
48         }
49 
50         @Override
51         public void startUpdate(View arg0) {
52 
53         }
54 
55         @Override
56         public void finishUpdate(View arg0) {
57 
58         }
59     }
60 
61     
62      public Bitmap loadImageFromLocal(String path) {  
63            
64          return BitmapFactory.decodeFile(path);  
65        
66      }  

这样就可以有效的避免内存溢出哦~~~

原文地址:https://www.cnblogs.com/all88/p/3342822.html