android 解决ViewPager加载大量图片内存溢出问题
程序员文章站
2024-03-05 11:10:54
1.大家都知道为viewpager构建适配器继承pageradapter,怎么构建就不说了。viewpager会默认加载当前页和当前页的左右两页。一开始当前页是下标0,所以...
1.大家都知道为viewpager构建适配器继承pageradapter,怎么构建就不说了。viewpager会默认加载当前页和当前页的左右两页。一开始当前页是下标0,所以一开始默认加载第0页(指下标,下同)和第1页。当你向右滑动,当前页为第1页时,viewpager会加载第2页,这时一共有3页存在(第0,1,2页)。再向右滑动,当前页为第2页时,会移除第0页,加载第3页,同理向左滑动当前页为第1页时,会移除第3页。这么说应该懂了吧。
知道了上面的原理,就可以让viewpager始终只加载3页的图片。加载是执行instantiateitem(...)方法,移除是执行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; } } }
上一篇: springmvc使用JSR-303进行数据校验实例
下一篇: C# 定义常量 两种实现方法
推荐阅读
-
android 解决ViewPager加载大量图片内存溢出问题
-
android 解决ViewPager加载大量图片内存溢出问题
-
解决Java导入excel大量数据出现内存溢出的问题
-
解决Java导入excel大量数据出现内存溢出的问题
-
Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)
-
Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)
-
Android 异步获取网络图片并处理导致内存溢出问题解决方法
-
Android 异步获取网络图片并处理导致内存溢出问题解决方法
-
Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案
-
Android加载图片内存溢出问题解决方法