Android ViewPager实现图片循环切换
2015-11-24 00:00
411 查看
摘要: 思路:将pageradapter中的getcount方法返回值设为无限大(网上看到的思路,这里整理了一下)
通过handler消息实现定时切换
思路很简单,想要源码的话联系邮箱juyao0909@gmail.com
通过handler消息实现定时切换
思路很简单,想要源码的话联系邮箱juyao0909@gmail.com
import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; public class MainActivity extends Activity { // MyViewPagerAdapter adapter; private ViewPager viewPager; private List<ImageView> listviews; private int[] pics = { R.drawable.aa, R.drawable.bb, R.drawable.cc }; private Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { viewPager.setCurrentItem(viewPager.getCurrentItem() + 1); handler.sendEmptyMessageDelayed(0, 1000); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewpager_activity); listviews = new ArrayList<ImageView>(); for (int i = 0; i < pics.length; i++) { ImageView imageView = new ImageView(MainActivity.this); ViewGroup.LayoutParams viewPagerImageViewParams = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); imageView.setLayoutParams(viewPagerImageViewParams); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setImageResource(pics[i]); listviews.add(imageView); } viewPager.setAdapter(new ViewPagerAdapter()); viewPager.setCurrentItem(481); handler.sendEmptyMessageDelayed(0, 1000);// 间隔一秒切换一次 } class ViewPagerAdapter extends PagerAdapter { @Override public Object instantiateItem(ViewGroup container, int position) { if (listviews.get(position % listviews.size()).getParent() != null) { container .removeView(listviews.get(position % listviews.size())); } container.addView(listviews.get(position % listviews.size()), 0); return listviews.get(position % listviews.size()); } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object o) { return view == o; } @Override public void destroyItem(ViewGroup container, int position, Object object) { }// 这个方法必须要重写,不然会报错 } }
相关文章推荐
- C#中循环语句:while、for、foreach的使用
- Lua中数字for循环实例
- Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
- Shell中的for和while循环详细总结
- C语言循环结构与时间函数用法实例教程
- php循环table实现一行两列显示的方法
- ThinkPHP采用<volist>实现三级循环代码实例
- ASP 循环导入导出数据处理 不使用缓存
- 详解JavaScript中循环控制语句的用法
- asp中for循环的使用方法
- JavaScript中利用各种循环进行遍历的方式总结
- Javascript循环绑定事件的示例代码
- C语言循环队列的表示与实现实例详解
- C++循环队列实现模型
- C# 分支与循环介绍
- 跟我学习javascript的循环
- 采用自执行的匿名函数解决for循环使用闭包的问题
- jQuery源码分析之jQuery中的循环技巧详解
- Android基本游戏循环实例分析
- 批处理的"循环"效果脚本