无限轮播
来源:互联网 发布:淘宝店刷销量多少钱 编辑:程序博客网 时间:2024/05/16 09:01
package com.bwei.viewpager;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.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.LinearLayout.LayoutParams;import android.widget.TextView;import com.bwei.viewpager.adapter.MyPagerAdapter;import com.bwei.viewpager.bean.ViewBean;import com.bwei.viewpager.bean.ViewBean.Adlist;import com.bwei.viewpager.utils.NetWorkUtils;import com.google.gson.Gson;public class MainActivity extends Activity { private List<Adlist> listData; private ViewPager vp; private TextView tv_des; private LinearLayout ll_dot; //存放的是viewPager下面的点 List<ImageView> ivList= new ArrayList<>(); private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { int num = msg.what; switch (num) { case 0: vp.setAdapter(new MyPagerAdapter(MainActivity.this,listData,handler)); initDot(); //设置初使化的索引 vp.setCurrentItem(1000000); //让其无限轮播 sendDelayedMessage(); ViewPagerPagerListener(); break; case 1: //拿到viewpager当前的索引值 int position = vp.getCurrentItem(); position++; vp.setCurrentItem(position); sendDelayedMessage(); break; default: break; } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp = (ViewPager) findViewById(R.id.vp); tv_des = (TextView) findViewById(R.id.tv_des); ll_dot = (LinearLayout) findViewById(R.id.ll_dot); //从服务器上返回的json字符串 new Thread(){ public void run() { String json = NetWorkUtils.getStr(); gsonData(json); handler.sendEmptyMessage(0); }; }.start(); } /** * */ protected void sendDelayedMessage() { //延时两秒去发送一个消息给handler handler.sendEmptyMessageDelayed(1, 2000); } /** * viewpager滑动监听事件 */ protected void ViewPagerPagerListener() { vp.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { for (int i = 0; i < ivList.size(); i++) { if(position%listData.size()==i){ //viewpager的position和下面的占的位置相等,我们就让点变颜色 ivList.get(position%listData.size()).setImageResource(R.drawable.dot_focuse); }else{ ivList.get(i).setImageResource(R.drawable.dot_normal); } tv_des.setText(listData.get(position%listData.size()).title); } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } /** * 初使化点 */ protected void initDot() { if(ivList!=null){ ivList.clear(); } for (int i = 0; i < listData.size(); i++) { ImageView iv = new ImageView(this); if(i==0){ //如果 iv.setImageResource(R.drawable.dot_focuse); }else{ iv.setImageResource(R.drawable.dot_normal); } tv_des.setText(listData.get(i).title); LayoutParams params = new LayoutParams(20, 20); //控制两点之间的距离的 params.setMargins(10, 0, 10, 0); ivList.add(iv); ll_dot.addView(iv, params); } } /** * 解析json数据 */ private void gsonData(String json) { Gson gson = new Gson(); ViewBean viewBean = gson.fromJson(json, ViewBean.class); //存放数据的集合 listData = viewBean.data.adlist; }}
0 0
- viewpager无限轮播
- 无限轮播加点
- Viewpager无限轮播
- 无限轮播
- 图片无限轮播
- 无限轮播
- Viewpager无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- Python FAQs
- 相似三角形--水
- lightoj- 1138 - Trailing Zeroes (III)【思维】【二分查找】
- java实现简单排序算法:希尔排序
- 编程珠玑第二章2.6(5-10)
- 无限轮播
- 学习笔记9——linux系统安全优化之锁定关键的系统文件
- 模拟实现trim方法
- 1016. Phone Bills (25)-PAT甲级真题
- 【Consul】Consul实践指导-Encryption配置
- 两学一做
- 字符串池和堆
- TOJ 1438.Perfect Pth Powers
- 823oracle