继续前文提醒:ViewPager已经被ViewPager2所取代。
正文:
写完前面一篇文章,又在网上到处翻找,发现其实并不需要真的去继承一个PagerAdapter类也行。
这样我们的问题就简单了,只需要两步:
一、设置布局,加入一个ViewPager
<?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"android:orientation="vertical"tools:context=".MainActivity"><androidx.viewpager.widget.ViewPagerandroid:id="@+id/view_pager"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>
二、在主活动中关联ViewPager和PagerAdapter
public class MainActivity extends AppCompatActivity {// 定义引导页图片数组private int[] imageArray = {R.drawable.yingdao1, R.drawable.yingdao2,R.drawable.yingdao3, R.drawable.yingdao4};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ViewPager viewPager = findViewById(R.id.view_pager);List<View> viewList = new ArrayList<>();for(int image:imageArray){ImageView view = new ImageView(this);// 设置图片填满整个容器view.setScaleType(ImageView.ScaleType.FIT_XY);view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));view.setImageResource(image);viewList.add(view);}PagerAdapter adapter = new PagerAdapter() {@Overridepublic int getCount() {return viewList.size();}@Overridepublic boolean isViewFromObject(@NonNull @NotNull View view, @NonNull @NotNull Object object) {return view==object;}@NonNull@NotNull@Overridepublic Object instantiateItem(@NonNull @NotNull ViewGroup container, int position) {ImageView view = (ImageView)viewList.get(position);container.addView(view);return view;}@Overridepublic void destroyItem(@NonNull @NotNull ViewGroup container, int position, @NonNull @NotNull Object object) {container.removeView(viewList.get(position));}};viewPager.setAdapter(adapter);}
}