最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android 解決ViewPager加載大量圖片內(nèi)存溢出問題

 更新時間:2016年07月08日 11:56:35   投稿:lqh  
本篇文章是介紹 android 解決ViewPager加載大量圖片內(nèi)存溢出問題,并附有代碼實例,希望能幫到有需要的小伙伴

1.大家都知道為ViewPager構(gòu)建適配器繼承PagerAdapter,怎么構(gòu)建就不說了。Viewpager會默認(rèn)加載當(dāng)前頁和當(dāng)前頁的左右兩頁。一開始當(dāng)前頁是下標(biāo)0,所以一開始默認(rèn)加載第0頁(指下標(biāo),下同)和第1頁。當(dāng)你向右滑動,當(dāng)前頁為第1頁時,ViewPager會加載第2頁,這時一共有3頁存在(第0,1,2頁)。再向右滑動,當(dāng)前頁為第2頁時,會移除第0頁,加載第3頁,同理向左滑動當(dāng)前頁為第1頁時,會移除第3頁。這么說應(yīng)該懂了吧。

知道了上面的原理,就可以讓ViewPager始終只加載3頁的圖片。加載是執(zhí)行instantiateItem(...)方法,移除是執(zhí)行destroyItem(...)方法,可以在instantiateItem(...)里加載某一頁的圖片,在destroyItem(...)里回收某一頁的圖片。附上代碼:

2.代碼實例:

package com.example.test;
 
import java.util.ArrayList;
 
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.ImageView;
 
public class TestActivity extends Activity{
 
 private ViewPager mPager;
 private ArrayList<View> views;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 views=new ArrayList<View>();
 views.add(new ImageView(this));
 views.add(new ImageView(this));
 views.add(new ImageView(this));
 views.add(new ImageView(this));
 views.add(new ImageView(this));
 views.add(new ImageView(this));
 views.add(new ImageView(this));
 views.add(new ImageView(this));
  
 mPager=new ViewPager(this);
 mPager.setAdapter(new MyPagerAdapter());
 setContentView(mPager);
 }
 
 class MyPagerAdapter extends PagerAdapter{
 
 @Override
 public void destroyItem(View container, int position, Object object) {
  //在此次回收圖片
  //........回收代碼
  
  //移除頁面
  ((ViewPager)container).removeView(views.get(position));
 }
 
 @Override
 public Object instantiateItem(View container, int position) {
  // 在此次加載圖片
  //......加載圖片代碼
  
  //加載頁面
  ((ViewPager)container).addView(views.get(position), 0);
  return views.get(position);
 }
 
 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return views.size();
 }
 
 @Override
 public boolean isViewFromObject(View arg0, Object arg1) {
  // TODO Auto-generated method stub
  return false;
 }
  
 }
}

相關(guān)文章

最新評論

嘉鱼县| 新民市| 西吉县| 利津县| 应用必备| 库尔勒市| 金阳县| 棋牌| 清河县| 鄂州市| 天等县| 同心县| 三江| 五常市| 内黄县| 台前县| 新巴尔虎右旗| 湟源县| 河西区| 永靖县| 宜川县| 英吉沙县| 曲麻莱县| 敦煌市| 阿拉尔市| 小金县| 镇江市| 大化| 淄博市| 容城县| 高州市| 黔东| 平顶山市| 崇左市| 辽中县| 会泽县| 洪泽县| 清涧县| 南开区| 行唐县| 永寿县|