欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

2.代碼實(shí)例:

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) {
  //在此次回收?qǐng)D片
  //........回收代碼
  
  //移除頁(yè)面
  ((ViewPager)container).removeView(views.get(position));
 }
 
 @Override
 public Object instantiateItem(View container, int position) {
  // 在此次加載圖片
  //......加載圖片代碼
  
  //加載頁(yè)面
  ((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)文章

  • 如何使用Kotlin進(jìn)行Android開(kāi)發(fā)

    如何使用Kotlin進(jìn)行Android開(kāi)發(fā)

    這篇文章主要教大家如何使用Kotlin進(jìn)行Android開(kāi)發(fā),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android 手機(jī)獲取手機(jī)號(hào)實(shí)現(xiàn)方法

    Android 手機(jī)獲取手機(jī)號(hào)實(shí)現(xiàn)方法

    本文主要介紹Android 獲取手機(jī)號(hào)的實(shí)現(xiàn)方法,這里提供了實(shí)現(xiàn)方法,和具體操作流程,并符實(shí)現(xiàn)代碼,有需要的小伙伴可以參考下
    2016-09-09
  • Android如何優(yōu)雅的處理重復(fù)點(diǎn)擊

    Android如何優(yōu)雅的處理重復(fù)點(diǎn)擊

    這篇文章主要介紹了Android如何優(yōu)雅的處理重復(fù)點(diǎn)擊,幫助大家更好的理解和學(xué)習(xí)使用Android開(kāi)發(fā),感興趣的朋友可以了解下
    2021-03-03
  • Android SQLite操作之大數(shù)據(jù)處理與同時(shí)讀寫(xiě)方法

    Android SQLite操作之大數(shù)據(jù)處理與同時(shí)讀寫(xiě)方法

    這篇文章主要介紹了Android SQLite操作之大數(shù)據(jù)處理與同時(shí)讀寫(xiě)方法,實(shí)例分析了Android操作SQLite時(shí)基于事務(wù)的數(shù)據(jù)緩存與批量插入技巧,以及同時(shí)讀寫(xiě)的相關(guān)實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下
    2016-07-07
  • Android RecyclerView 數(shù)據(jù)綁定實(shí)例代碼

    Android RecyclerView 數(shù)據(jù)綁定實(shí)例代碼

    本文主要介紹Android RecyclerView 數(shù)據(jù)綁定的資料,這里詳細(xì)說(shuō)明如何實(shí)現(xiàn) Android RecyclerView的數(shù)據(jù)綁定,并附示例代碼,有需要的小伙伴可以參考下
    2016-09-09
  • Android?Spinner和GridView組件的使用示例

    Android?Spinner和GridView組件的使用示例

    Spinner其實(shí)是一個(gè)列表選擇框,不過(guò)Android的列表選擇框并不需要顯示下拉列表,而是相當(dāng)于彈出一個(gè)菜單供用戶選擇,GridView是一個(gè)在二維可滾動(dòng)的網(wǎng)格中展示內(nèi)容的控件。網(wǎng)格中的內(nèi)容通過(guò)使用adapter自動(dòng)插入到布局中
    2022-03-03
  • 關(guān)于Android中ListView嵌套GridView的問(wèn)題

    關(guān)于Android中ListView嵌套GridView的問(wèn)題

    在Android開(kāi)發(fā)的過(guò)程中可能需要用到listview嵌套gridview的場(chǎng)景,但是在嵌套過(guò)程中也許會(huì)遇到問(wèn)題,我們下面一起來(lái)看看是什么問(wèn)題以及如何解決。
    2016-08-08
  • flutter實(shí)現(xiàn)頭部tabTop滾動(dòng)欄

    flutter實(shí)現(xiàn)頭部tabTop滾動(dòng)欄

    這篇文章主要為大家詳細(xì)介紹了flutter實(shí)現(xiàn)頭部tabTop滾動(dòng)欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android Compose自定義TextField實(shí)現(xiàn)自定義的輸入框

    Android Compose自定義TextField實(shí)現(xiàn)自定義的輸入框

    眾所周知Compose中默認(rèn)的TextField和OutlineTextField樣式并不能滿足所有的使用場(chǎng)景,所以自定義TextField就成了必備技能。本文將自定義TextField實(shí)現(xiàn)自定義的輸入框,感興趣的可以了解一下
    2022-03-03
  • 基于popupWindow實(shí)現(xiàn)懸浮半透明效果

    基于popupWindow實(shí)現(xiàn)懸浮半透明效果

    這篇文章主要為大家詳細(xì)介紹了基于popupWindow實(shí)現(xiàn)懸浮半透明效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論