<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/ViewPager"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="9"
>
</android.support.v4.view.ViewPager>
<RadioGroup
android:id="@+id/RadioGrop"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
android:gravity="center">
</RadioGroup>
</LinearLayout>
然后 写代码
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private RadioGroup radioGroup;
private ArrayList<ImageView> list;
int i = 0;
Handler handler =new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
i++;
viewPager.setCurrentItem(i);
handler.sendEmptyMessageDelayed(0,1000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件
viewPager = findViewById(R.id.ViewPager);
radioGroup = findViewById(R.id.RadioGrop);
//创建数组
int arr[] = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};
//创建集合
list = new ArrayList<ImageView>();
//循环数据
for (int i=0;i<arr.length;i++){
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(arr[i]);
list.add(imageView);
//设置小圆点
RadioButton radioButton = new RadioButton(MainActivity.this);
//加入小圆点
radioGroup.addView(radioButton);
}
//设置第一个被选中
radioGroup.check(radioGroup.getChildAt(0).getId());
//设置适配器
viewPager.setAdapter(new MyAdapter(MainActivity.this,list));
//联动
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
i%=list.size();
radioGroup.check(radioGroup.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
//发送消息
handler.sendEmptyMessageDelayed(0,1000);
}
}
写适配器
public class MyAdapter extends PagerAdapter {
private Context context;
private ArrayList<ImageView> list;
public MyAdapter(Context context, ArrayList<ImageView> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
position %= list.size();
ImageView imageView = list.get(position);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}