activity_guide:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_guide" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.commondeno.pageindicatorview.GuideActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewpage" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <Button android:id="@+id/startBtn" android:visibility="gone" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始体验" android:textSize="18dp" android:background="@drawable/btn_press_color" android:textColor="@drawable/btn_text_color"/> </RelativeLayout>
GuideActivity:
/** * ViewPage指示器,页面的引导功能 * 红色圆点的添加 */ public class GuideActivity extends AppCompatActivity { @Bind(R.id.viewpage) ViewPager viewpager; @Bind(R.id.startBtn) Button startBtn; //引导的图片 private int[] guideImages = {R.mipmap.guide_1, R.mipmap.guide_2, R.mipmap.guide_3}; //创建集合对象arrayList private ArrayList<ImageView> arrayList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guide); ButterKnife.bind(this); arrayList = new ArrayList<ImageView>(); for (int i = 0; i < guideImages.length; i++) { //创建ImageView的对象 ImageView imageView = new ImageView(this); //将引导图片加载到imageView中 imageView.setBackgroundResource(guideImages[i]); arrayList.add(imageView);//将imageView加载到ArrayList集合中 } //设置ViewPager的适配器 viewpager.setAdapter(new MyViewPagerAdapter()); //设置ViewPage的监听事件,判断是否滑动到最后一张图片,若是最后一张图片,显示按钮 viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //判断是否滑动到最后一张图片,若是显示按钮 if (position == guideImages.length - 1) { startBtn.setVisibility(View.VISIBLE); } else { startBtn.setVisibility(View.GONE); } } @Override public void onPageScrollStateChanged(int state) { } }); } class MyViewPagerAdapter extends PagerAdapter { /** * 返回数据的总个数 * * @return */ @Override public int getCount() { return guideImages.length; } /** * 作用,getView * * @param container ViewPager * @param position 要创建页面的位置 * @return 返回和创建当前页面的关系的值 */ @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = arrayList.get(position);//从集合中取图片 container.addView(imageView); return imageView; } /** * 判断 * * @param view 当前创建的视图 * @param object 上面instantiateItem返回的结果值 * @return */ @Override public boolean isViewFromObject(View view, Object object) { return view == object; } /** * 销毁页面 * * @param container ViewPager * @param position 要销毁页面的位置 * @param object 要销毁的页面 */ @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } }