android 解決ViewPager加載大量圖片內(nèi)存溢出問題
1.大家都知道為ViewPager構(gòu)建適配器繼承PagerAdapter,怎么構(gòu)建就不說了。Viewpager會默認加載當前頁和當前頁的左右兩頁。一開始當前頁是下標0,所以一開始默認加載第0頁(指下標,下同)和第1頁。當你向右滑動,當前頁為第1頁時,ViewPager會加載第2頁,這時一共有3頁存在(第0,1,2頁)。再向右滑動,當前頁為第2頁時,會移除第0頁,加載第3頁,同理向左滑動當前頁為第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;
}
}
}
- Android使用ViewPager加載圖片和輪播視頻
- Android開發(fā)之使用ViewPager實現(xiàn)圖片左右滑動切換效果
- Android ViewPager實現(xiàn)圖片輪播效果
- Android 利用ViewPager實現(xiàn)圖片可以左右循環(huán)滑動效果附代碼下載
- 使用ViewPager實現(xiàn)左右循環(huán)滑動及滑動跳轉(zhuǎn)
- 仿網(wǎng)易新聞客戶端頭條ViewPager嵌套實例
- Android利用ViewPager實現(xiàn)滑動廣告板實例源碼
- Android App中ViewPager所帶來的滑動沖突問題解決方法
- Android ViewPager中顯示圖片與播放視頻的填坑記錄
相關(guān)文章
android實現(xiàn)定位與目的地的導(dǎo)航示例代碼
本篇文章主要介紹了android實現(xiàn)定位與目的地的導(dǎo)航示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
Android中判斷網(wǎng)絡(luò)是否可用的代碼分享
這篇文章主要介紹了Android中判斷網(wǎng)絡(luò)是否可用的代碼分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-03-03
Android 倒計時控件 CountDownView的實例代碼詳解
這篇文章主要介紹了Android 倒計時控件 CountDownView的實例代碼,代碼簡單易懂,非常不錯,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法
這篇文章主要介紹了Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法,可實現(xiàn)Android針對系統(tǒng)中已安裝程序名稱、路徑、大小、圖標、是否為系統(tǒng)app等信息的獲取功能,需要的朋友可以參考下2017-12-12
Android中ListView下拉刷新的實現(xiàn)代碼
這篇文章主要介紹了Android中ListView下拉刷新的實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-06-06

