ViewPager轮播
来源:互联网 发布:义乌淘宝美工培训学校 编辑:程序博客网 时间:2024/06/04 19:38
public class MainActivity extends Activity { private ViewPager vp; private LinearLayout ll; private List<ImageView> imageList; private List<View> dotList; private int oldPosition = 0; //定义一个显示当前的页面位置 private int currentPostion = 0; private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { vp.setCurrentItem(currentPostion); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); //设置适配器 setViewPagerAdapter(); autoPlay(); } private void initData() { imageList = new ArrayList<ImageView>(); dotList = new ArrayList<View>(); //创建轮播页面图 ImageView imageView1 = new ImageView(this); imageView1.setBackgroundResource(R.drawable.i); ImageView imageView2 = new ImageView(this); imageView2.setBackgroundResource(R.drawable.n); ImageView imageView3 = new ImageView(this); imageView3.setBackgroundResource(R.drawable.o); ImageView imageView4 = new ImageView(this); imageView4.setBackgroundResource(R.drawable.p); //添加到集合 imageList.add(imageView1); imageList.add(imageView2); imageList.add(imageView3); imageList.add(imageView4); //初始化底部圆点 for (int i = 0; i < imageList.size(); i++) { //创建圆点 View view = new View(this); //设置圆点宽高 view.setLayoutParams(new LinearLayout.LayoutParams(50, 50)); dotList.add(view); if(i == 0){//默认选中状态 第一个圆点 dotList.get(i).setBackgroundResource(R.drawable.btn_radio_on_holo_dark); }else{ dotList.get(i).setBackgroundResource(R.drawable.btn_radio_on_disabled_holo_dark); } //挂载到LinearLayout节点下 ll.addView(dotList.get(i)); } } private void initView() { vp = (ViewPager) findViewById(R.id.vp); ll = (LinearLayout) findViewById(R.id.ll); } /** * 设置适配器 */ @SuppressWarnings("deprecation") private void setViewPagerAdapter() { vp.setAdapter(new MyPagerAdapter()); vp.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { dotList.get(position % imageList.size()). setBackgroundResource(R.drawable.btn_radio_on_holo_dark); dotList.get(oldPosition % imageList.size()). setBackgroundResource(R.drawable.btn_radio_on_disabled_holo_dark); //更新圆点位置 oldPosition = position; } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } class MyPagerAdapter extends PagerAdapter{ @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void destroyItem(ViewGroup container, int position, Object object) { //super.destroyItem(container, position, object); //container.removeView(imageList.get(position)); //轮播的话,我们就不去做处理了 } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = imageList.get(position % imageList.size()); ViewPager parent = (ViewPager) imageView.getParent(); if(parent != null){ parent.removeView(imageView); } //ImageView imageView = new ImageView(this); //imageView.setBackgroundResource(int[position]) container.addView(imageView); return imageView; } } /** * 自动轮播 */ private void autoPlay(){ new Thread(){ public void run() { //无线循环 while(true){ SystemClock.sleep(3000); currentPostion++; //发送消息 handler.sendEmptyMessage(0); } }; }.start(); }}
阅读全文
0 0
- ViewPager轮播
- ViewPager实现轮播
- ViewPager图片轮播
- ViewPager轮播效果
- Viewpager轮播
- ViewPager大图轮播
- viewpager无限轮播
- ViewPager 无线轮播
- Viewpager无限轮播
- viewpager轮播
- ViewPager轮播
- ViewPager轮播
- Viewpager无限轮播
- ViewPager轮播
- ViewPager无限轮播
- ViewPager实现轮播
- ViewPager无限轮播
- viewpager轮播
- JAVA EE中 Servlet的入门
- POJ3268---Silver Cow Party (最短路径)
- Angular 组件
- Kinetis单片机——结构体相关
- Matlab 端点法和最小二乘法计算直线度
- ViewPager轮播
- 常用Shell脚本命令
- 欢迎使用CSDN-markdown编辑器
- acm算法有用吗?写给自己。
- Windows SDK 定时器Timer
- 九度oj-1070-今年第几天
- Mt1
- 马毅老师讲座收获总结
- Java语言基础——进制