ViewPager无限轮播
来源:互联网 发布:2017淘宝网双11销量 编辑:程序博客网 时间:2024/05/02 02:08
public class MainActivity extends Activity {
private List<ImageView> img_view;
private List<View> dotlist;
private ViewPager pager_v;
private MyPagerAdapter adapter;
private LinearLayout linear;
private int count=0;
private int sleeps = 0;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
pager_v.setCurrentItem(sleeps);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pager_v = (ViewPager) findViewById(R.id.pager_v);
linear = (LinearLayout) findViewById(R.id.linear);
initArray();
//监听
pager_v.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
dotlist.get(position % img_view.size()).setBackgroundResource(R.drawable.dots2);
dotlist.get(count % img_view.size()).setBackgroundResource(R.drawable.dot1);
count = position;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
//添加适配器
adapter = new MyPagerAdapter();
pager_v.setAdapter(adapter);
autoPlay();
}
private void initArray() {
img_view = new ArrayList<ImageView>();
dotlist = new ArrayList<View>();
//添加图片
ImageView img1 = new ImageView(this);
img1.setBackgroundResource(R.drawable.a);
img_view.add(img1);
ImageView img2 = new ImageView(this);
img2.setBackgroundResource(R.drawable.b);
img_view.add(img2);
ImageView img3 = new ImageView(this);
img3.setBackgroundResource(R.drawable.c);
img_view.add(img3);
ImageView img4 = new ImageView(this);
img4.setBackgroundResource(R.drawable.d);
img_view.add(img4);
//添加小圆点 小圆点根据图片滑动而滚动
for (int i = 0; i < img_view.size(); i++) {
View view = new View(this);
//设置原点的宽高
view.setLayoutParams(new LinearLayout.LayoutParams(10, 10));
//添加
dotlist.add(view);
if (i==0) {//默认选中
dotlist.get(i).setBackgroundResource(R.drawable.dots2);
} else {
dotlist.get(i).setBackgroundResource(R.drawable.dot1);
}
linear.addView(dotlist.get(i));
}
}
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) {
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = img_view.get(position % img_view.size());
//定义一个父类
ViewPager parent = (ViewPager) imageView.getParent();
//判断一下 不为空时将其删除
if (parent != null) {
parent.removeView(imageView);
}
container.addView(imageView);
return imageView;
}
}
//延时跳转
private void autoPlay(){
new Thread(){
public void run() {
while (true) {
SystemClock.sleep(2000);
sleeps ++;
handler.sendEmptyMessage(0);
}
};
}.start();
}
}
private List<ImageView> img_view;
private List<View> dotlist;
private ViewPager pager_v;
private MyPagerAdapter adapter;
private LinearLayout linear;
private int count=0;
private int sleeps = 0;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
pager_v.setCurrentItem(sleeps);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pager_v = (ViewPager) findViewById(R.id.pager_v);
linear = (LinearLayout) findViewById(R.id.linear);
initArray();
//监听
pager_v.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
dotlist.get(position % img_view.size()).setBackgroundResource(R.drawable.dots2);
dotlist.get(count % img_view.size()).setBackgroundResource(R.drawable.dot1);
count = position;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
//添加适配器
adapter = new MyPagerAdapter();
pager_v.setAdapter(adapter);
autoPlay();
}
private void initArray() {
img_view = new ArrayList<ImageView>();
dotlist = new ArrayList<View>();
//添加图片
ImageView img1 = new ImageView(this);
img1.setBackgroundResource(R.drawable.a);
img_view.add(img1);
ImageView img2 = new ImageView(this);
img2.setBackgroundResource(R.drawable.b);
img_view.add(img2);
ImageView img3 = new ImageView(this);
img3.setBackgroundResource(R.drawable.c);
img_view.add(img3);
ImageView img4 = new ImageView(this);
img4.setBackgroundResource(R.drawable.d);
img_view.add(img4);
//添加小圆点 小圆点根据图片滑动而滚动
for (int i = 0; i < img_view.size(); i++) {
View view = new View(this);
//设置原点的宽高
view.setLayoutParams(new LinearLayout.LayoutParams(10, 10));
//添加
dotlist.add(view);
if (i==0) {//默认选中
dotlist.get(i).setBackgroundResource(R.drawable.dots2);
} else {
dotlist.get(i).setBackgroundResource(R.drawable.dot1);
}
linear.addView(dotlist.get(i));
}
}
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) {
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = img_view.get(position % img_view.size());
//定义一个父类
ViewPager parent = (ViewPager) imageView.getParent();
//判断一下 不为空时将其删除
if (parent != null) {
parent.removeView(imageView);
}
container.addView(imageView);
return imageView;
}
}
//延时跳转
private void autoPlay(){
new Thread(){
public void run() {
while (true) {
SystemClock.sleep(2000);
sleeps ++;
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单例和静态类区别
- Oracle数据库instr函数的应用
- Amlogic读写I2C测试节点
- andoird gradle 渠道包
- 使用Fresco注意的问题
- ViewPager无限轮播
- SerializeField 序列化域结合HideInInspector的使用
- 资源|17类对抗网络经典论文及开源代码(附源码)
- while loading shared libraries:libncurses.so.5问题
- 安卓 -- 微信分享集成
- 如何阻止h5body的滑动
- 1.0 在eclipse中使用maven创建springMVC项目
- 使用jQuery Datatable 遇到的问题
- 【读书笔记】——《HTML5移动开发》语义化的短语元素