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      }  

 

這樣就可以有效的避免內存溢出哦~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM