VewPager实现引导页

 ViewPager,是在Android3.0之后新增的API,可以用于导航栏,页面切换等控件,其主要功能是使视图可以左右滑动,也就是说可以实现轮播图和引导页等效果。 下面我就开始正题了

xml中

     <android.support.v4.view.ViewPager        android:id="@+id/vp_viewpager"        android:layout_width="wrap_content"        android:layout_height="477dp"        android:layout_alignParentTop="true"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true">android.support.v4.view.ViewPager>      <LinearLayout    android:id="@+id/ll"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:orientation="horizontal"    android:layout_marginBottom="42dp"    android:layout_alignParentBottom="true"    android:layout_centerHorizontal="true">LinearLayout>      <Button        android:id="@+id/into_button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="开始"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:visibility="gone"/>

首先创建适配器,继承PagerAdapter。

public class MyViewPagerAdapter extends PagerAdapter {    private ArrayList viewlist;    public MyViewPagerAdapter(ArrayList viewlist) {        this.viewlist = viewlist;    }    @Override    public int getCount() {        return viewlist.size();    }    @Override    public boolean isViewFromObject(View view, Object object) {        return view==object;    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        container.addView(viewlist.get(position));        return viewlist.get(position);    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView(viewlist.get(position));    }}适配器写完了,就到activityle。
private ViewPager vp_viewpager;//linlayoutprivate LinearLayout ll;//点击跳转private Button into_button;//adapter 需要传递的参数private ArrayList viewlist;//集合private int[] imgs={R.mipmap.aa,R.mipmap.bb,R.mipmap.cc,R.mipmap.dd};private ArrayList arrayList;private MyViewPagerAdapter pagerAdapter;@Overrideprotected int getlayoutId() {    return R.layout.activity_into_home;}@Overrideprotected void initView() {     vp_viewpager= (ViewPager) findViewById(R.id.vp_viewpager);    ll= (LinearLayout) findViewById(R.id.ll);     into_button= (Button) findViewById(R.id.into_button);    initData();    initlistener();}private void initlistener() {    vp_viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {        //滚动页        @Override        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {        }        @Override        public void onPageSelected(int position) {            for (int i = 0; i < imgs.length; i++) {                if (position==i){                    //在这里注意  view没有下面这个方法                    //只有ImgView才有这个方法                    //R.drawable.shap  自定义颜色大小                    arrayList.get(i).setImageResource(R.drawable.shap);                }else{                    arrayList.get(i).setImageResource(R.drawable.shap1);                }                if (position==imgs.length-1){                    ll.setVisibility(View.GONE);                    into_button.setVisibility(View.VISIBLE);                }else{                    ll.setVisibility(View.VISIBLE);                    into_button.setVisibility(View.GONE);                }            }        }        @Override        public void onPageScrollStateChanged(int state) {        }    });    into_button.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {             startActivity(new Intent(YinDaoHome.this,MainActivity.class));        }    });}private void initData() {    arrayList = new ArrayList<>();    viewlist = new ArrayList<>();    vp_viewpager.setCurrentItem(0);    for (int i = 0; i < imgs.length; i++) {        ImageView view=new ImageView(this);        view.setImageResource(imgs[i]);        viewlist.add(view);    }    for (int i = 0; i < imgs.length; i++) {        ImageView imageView=new ImageView(this);        imageView.setLayoutParams(new ViewGroup.LayoutParams(20,20));        if (i==0){            imageView.setBackgroundResource(R.drawable.shap);        }else{            imageView.setBackgroundResource(R.drawable.shap1);        }        arrayList.add(imageView);        ll.addView(imageView);    }   pagerAdapter = new MyViewPagerAdapter(viewlist);    vp_viewpager.setAdapter(pagerAdapter);}

然后就是drawablex下的两个shap

shap.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="oval">    <corners android:radius="10dp"/>    <solid android:color="@android:color/darker_gray"/>shape>

shap1.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="oval">    <corners android:radius="10dp"/>    <solid android:color="#fff000"/>shape>就这样ViewPager引导页就实现了。我就在这献丑了,

更多相关文章

  1. Android(安卓)Flutter:Dart语言(布局篇)
  2. 底部导航栏中间凸出效果
  3. Android控件——Checkbox复选框、RadioButton单选、ToggleButton
  4. android选择一张本机图片
  5. 3.addView调用之后导致子布局的android:layout_width="match_par
  6. Android(安卓)ConstraintLayout布局详解
  7. Listview中Button抢占焦点的解决方法
  8. Android中inflate参数的写法:
  9. CoderPig’s Android(安卓)Study Note——目录

随机推荐

  1. css选择器与权重
  2. 伪类选择器与盒模型属性实例解析,附字体
  3. 伪类选择器、字体图标、盒模型属性、em和
  4. 12月22日作业 task1表格
  5. 注册表(原始的未加 css)
  6. 课程表(报名表)
  7. css样式 来源 规则 选择器权重
  8. Emmet语法
  9. css伪类选择器,字体图标,盒模型及自适应布
  10. Linux系统配置(系统优化)