屏幕滑动是两个完整屏幕之间的切换,在设置向导或幻灯片等界面中很常见。
ViewPager
对象可自动为屏幕滑动添加动画。
ViewPager
是 AndroidX 的一部分。
SDK最低版本要求: API24
创建图片列表:
List<ImageView> list;
int img_id[]={R.raw.image1,R.raw.image2,R.raw.image3};
list=new ArrayList<ImageView>();
for (int i = 0; i < img_id.length; i++) {
ImageView view=new ImageView(this);
view.setImageResource(img_id[i]);
list.add(view);
}
自定义适配器类PagerAdapter
When you implement a PagerAdapter, you must override the following methods at minimum:
instantiateItem
destroyItem
getCount
isViewFromObject
class Adapter extends PagerAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
if (view==object)
return true ;
else
return false;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
container.addView(list.get(position));
//super.instantiateItem(container, position);
return list.get(position);
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView(list.get(position));
// super.destroyItem(container, position, object);
}
}
}
设置适配器对象进行填充
int img_id[]={R.raw.image1,R.raw.image2,R.raw.image3};
list=new ArrayList<ImageView>();
for (int i = 0; i < img_id.length; i++) {
ImageView view=new ImageView(this);
view.setImageResource(img_id[i]);
list.add(view);
}
Adapter adapter=new Adapter();
vp = (ViewPager) findViewById(R.id.vp_show);
vp.setAdapter(adapter);
布局文件
<androidx.viewpager.widget.ViewPager
android:id="@+id/vp_show"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>