android教程viewpager自动循环和手动循环
时间:2021-07-23 12:03:06
package com.imoyo.expert;
import java.util.ArrayList;
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.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
public class ExActivity extends Activity {
ViewPager viewPager;
ArrayList<View> list;
ViewGroup main, group;
boolean cunhuan = false;
ImageView imageView;
ImageView[] imageViews;
private static int c_id = 0;
static int page_id = 1;
private Runnable switchTask = new Runnable() {
public void run() {
if (cunhuan) {
viewPager.setCurrentItem(page_id);
page_id++;
}
cunhuan=true;
Log.e("is_run", cunhuan+"");
mHandler.postDelayed(switchTask, 3000);
}
};
Handler mHandler = new Handler();
@Override
protected void onResume() {
super.onResume();
switchTask.run();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getView();
imageViews = new ImageView[list.size()];
ViewGroup main = (ViewGroup) inflater.inflate(R.layout.activity_main,
null);
ViewGroup group = (ViewGroup) main.findViewById(R.id.viewGroup);
viewPager = (ViewPager) main.findViewById(R.id.viewPager);
for (int i = 0; i < 5; i++) {
imageView = new ImageView(this);
imageView.setLayoutParams(new LayoutParams(12, 12));
imageViews[i] = imageView;
if (i == 0) {
imageViews[i].setBackgroundResource(R.drawable.img_blue_point);
} else {
imageViews[i].setBackgroundResource(R.drawable.img_white_point);
}
group.addView(imageView);
}
setContentView(main);
ViewPagerAdapter adapter = new ViewPagerAdapter(this, list);
viewPager.setAdapter(adapter);
viewPager.setOnPageChangeListener(listener);
viewPager.setCurrentItem(2);
}
public void getView() {
inflater = getLayoutInflater();
list = new ArrayList<View>();
list.add(inflater.inflate(R.layout.item4, null));
list.add(inflater.inflate(R.layout.item5, null));
list.add(inflater.inflate(R.layout.item1, null));
list.add(inflater.inflate(R.layout.item2, null));
list.add(inflater.inflate(R.layout.item3, null));
list.add(inflater.inflate(R.layout.item4, null));
list.add(inflater.inflate(R.layout.item5, null));
list.add(inflater.inflate(R.layout.item1, null));
list.add(inflater.inflate(R.layout.item2, null));
}
OnPageChangeListener listener = new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
if (arg0 == 0) {
viewPager.setCurrentItem(5, false);
page_id=5;
} else if (arg0 == 8) {
viewPager.setCurrentItem(3, false);
page_id=3;
}else{
page_id=arg0;
}
Log.e("arg", arg0 + "");
for (int i = 2; i < 7; i++) {
imageViews[i - 2]
.setBackgroundResource(R.drawable.img_white_point);
}
switch (arg0) {
case 7:
case 2:
imageViews[0]
.setBackgroundResource(R.drawable.img_blue_point);
break;
case 3:
case 8:
imageViews[1]
.setBackgroundResource(R.drawable.img_blue_point);
break;
case 4:
imageViews[2]
.setBackgroundResource(R.drawable.img_blue_point);
break;
case 0:
case 5:
imageViews[3]
.setBackgroundResource(R.drawable.img_blue_point);
break;
case 1:
case 6:
imageViews[4]
.setBackgroundResource(R.drawable.img_blue_point);
break;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
};
private LayoutInflater inflater;
}
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
使用java.nio.file 库优雅的操作文件详解
![](https://img.aspxhome.com/file/2023/7/132077_0s.png)
IntelliJ IDEA中显示和关闭工具栏与目录栏的方法
![](https://img.aspxhome.com/file/2023/9/93079_0s.png)
C#多线程之线程池ThreadPool用法
![](https://img.aspxhome.com/file/2023/1/108771_0s.jpg)
java LeetCode刷题稍有难度的贪心构造算法
![](https://img.aspxhome.com/file/2023/9/79209_0s.png)
常用Eclipse快捷方式(推荐)
简述Java中的四种引用类型
eclipse下搭建hibernate5.0环境的步骤(图文)
![](https://img.aspxhome.com/file/2023/0/83060_0s.jpg)
基于C语言实现静态通讯录的示例代码
![](https://img.aspxhome.com/file/2023/2/103102_0s.gif)
Java方法的返回值及注意事项小结
Java 图表类库详解
![](https://img.aspxhome.com/file/2023/0/85540_0s.png)
Android实现文字垂直滚动、纵向走马灯效果的实现方式汇总
![](https://img.aspxhome.com/file/2023/8/93298_0s.gif)
Java注解@Transactional事务类内调用不生效问题及解决办法
Java中BigDecimal的加减乘除、比较大小与使用注意事项
![](https://img.aspxhome.com/file/2023/1/66251_0s.jpg)
Java日期操作方法工具类实例【包含日期比较大小,相加减,判断,验证,获取年份等】
![](https://img.aspxhome.com/file/2023/9/59989_0s.jpg)
java 使用HttpURLConnection发送数据简单实例
java注解的全面分析
C#如何绑定多个按钮到同一个事件
Android使用ViewPager实现图片滑动预览效果
![](https://img.aspxhome.com/file/2023/9/88689_0s.jpg)
Java基于ArrayList实现群主发红包功能
![](https://img.aspxhome.com/file/2023/4/74914_0s.png)