首先在build中添加依赖:
implementation 'com.android.support:design:28.0.0'
xml布局:
//ViewPager
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="180dp">
</android.support.v4.view.ViewPager>
//圆点显示 (图片自定)
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="68dp">
<ImageView
android:id="@+id/img_a"
android:layout_width="69dp"
android:layout_height="match_parent"
android:src="@mipmap/a"/>
<ImageView
android:id="@+id/img_b"
android:layout_width="69dp"
android:layout_height="match_parent"
android:src="@mipmap/b"/>
<ImageView
android:id="@+id/img_c"
android:layout_width="69dp"
android:layout_height="match_parent"
android:src="@mipmap/c"/>
<ImageView
android:id="@+id/img_d"
android:layout_width="69dp"
android:layout_height="match_parent"
android:src="@mipmap/d"/>
<ImageView
android:id="@+id/img_e"
android:layout_width="69dp"
android:layout_height="match_parent"
android:src="@mipmap/e"/>
<ImageView
android:id="@+id/img_f"
android:layout_width="69dp"
android:layout_height="match_parent"
android:src="@mipmap/f"/>
</LinearLayout>
MainActivity:
//pager组件
private ViewPager pager;
//数据源
private List<ImageView> list=new ArrayList<>();
//初始化控件
pager=findViewById(R.id.pager);
//图片资源
ImageView imageView_a = new ImageView(this);
imageView_a.setImageResource(R.mipmap.a);
list.add(imageView_a);
ImageView imageView_b = new ImageView(this);
imageView_b.setImageResource(R.mipmap.b);
list.add(imageView_b);
ImageView imageView_c = new ImageView(this);
imageView_c.setImageResource(R.mipmap.c);
list.add(imageView_c);
ImageView imageView_d = new ImageView(this);
imageView_d.setImageResource(R.mipmap.d);
list.add(imageView_d);
ImageView imageView_e = new ImageView(this);
imageView_e.setImageResource(R.mipmap.e);
list.add(imageView_e);
ImageView imageView_f = new ImageView(this);
imageView_f.setImageResource(R.mipmap.f);
list.add(imageView_f);
//圆点数据源
private List<ImageView>list_yuan=new ArrayList<>();
//圆点的添加和初始化
list_yuan.add((ImageView) findViewById(R.id.img_a));
list_yuan.add((ImageView) findViewById(R.id.img_b));
list_yuan.add((ImageView) findViewById(R.id.img_c));
list_yuan.add((ImageView) findViewById(R.id.img_d));
list_yuan.add((ImageView) findViewById(R.id.img_e));
list_yuan.add((ImageView) findViewById(R.id.img_f));
//状态的监听
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
//当页面滑动的时候调用
@Override
public void onPageScrolled(int i, float v, int i1) {
}
//当页面被选择的时候
@Override
public void onPageSelected(int i) {
for (int j=0;j<list_yuan.size();j++){
//设置未选择状态
list_yuan.get(j).setImageResource(R.mipmap.a);
}
//选择 状态 的 改变
list_yuan.get(i).setImageResource(R.mipmap.ic_launcher_round);
}
//当页面滑动状态改变的时候
@Override
public void onPageScrollStateChanged(int i) {
}
});
//Handler 消息的发送和接收
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//判断标记
if(msg.what==101){
//设置到下一页
pager.setCurrentItem(count++);
}
}
};
//自动轮播
final Timer timer = new Timer();
//开启定时器
timer.schedule(new TimerTask() {
@Override
public void run() {
//判断是否为最后一张图片
if (count!=list_yuan.size()){
handler.sendEmptyMessage(101);
}else{
//为最后一张,关闭计时器
// timer.cancel();
count=0;
}
}
},0,1000);