美文网首页
带小圆点的viewpager

带小圆点的viewpager

作者: 蔷薇岛的海与少年_9abe | 来源:发表于2018-08-03 22:06 被阅读0次

    public class GuideActivityextends AppCompatActivityimplements ViewPager.OnPageChangeListener{

    ViewPagervp;

    int []imageIdArray;//图片资源数组

        ListviewList;//图片资源集合

        ViewGroupvg;//放置小圆点

    //    实例化小圆点

        ImageViewiv_point;

    ImageView []ivPointArray;

    //    最后一页按钮

        ImageButtonib_start;

    @Override

        protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.guide);

    ib_start = (ImageButton) findViewById(R.id.guide_button);

    ib_start.setOnClickListener(new View.OnClickListener() {

    @Override

                public void onClick(View view) {

    Intent intent =new Intent("Z.l.f");

    startActivity(intent);

    finish();

    }

    });

    //        加载viewPager

            initViewPager();

    //        加载底部圆点

            initPoint();

    }

    //    加载底部圆点

        private void initPoint(){

    vg = (ViewGroup) findViewById(R.id.guide_point);

    //        根据Item实例化数组

            ivPointArray =new ImageView[viewList.size()];

    //        循环底部圆点,将生成的Image保存到数组

            int size =viewList.size();

    for (int i =0; i < size; i++) {

    iv_point =new ImageView(this);

    iv_point.setLayoutParams(new ViewGroup.LayoutParams(20,20));

    iv_point.setPadding(30,0,30,0);//left,top,right,bottom

                ivPointArray[i] =iv_point;

    //            第一个页面被设为选中状态,所以放两张不同的图片

                if (i ==0) {

    iv_point.setBackgroundResource(R.drawable.point_press);

    }else{

    iv_point.setBackgroundResource(R.drawable.point_normal);

    }

    //            将数组中的Image加入到ViewGroup

                vg.addView(ivPointArray[i]);

    }

    }

    //    加载图片

        private void initViewPager(){

    mViewList =new ArrayList();

    LayoutInflater lf = getLayoutInflater().from(MainActivity.this);

    View view1 = lf.inflate(R.layout.we_indicator1,null);

    View view2 = lf.inflate(R.layout.we_indicator2,null);

    View view3 = lf.inflate(R.layout.we_indicator3,null);

    mViewList.add(view1);

    mViewList.add(view2);

    mViewList.add(view3);

    //        获取Layout参数,设为全局

            LinearLayout.LayoutParams params =new LinearLayout.LayoutParams(

    LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);

    //        循环创建View加入到集合中

            int len =imageIdArray.length;

    for (int i =0; i < len; i++) {

    //new Imageview 并设置全屏和图片资源

                ImageView imageview =new ImageView(this);

    imageview.setLayoutParams(params);

    imageview.setBackgroundResource(imageIdArray[i]);

    viewList.add(imageview);

    }

    vp.setAdapter(new GuideAdapter(viewList));

    vp.addOnPageChangeListener(this);

    }

    @Override

        public void onPageScrolled(int position,float positionOffset,int positionOffsetPixels) {

    }

    //滑动后监听

        @Override

        public void onPageSelected(int position) {

    //循环设置当前页的标记图

            int length =imageIdArray.length;

    for (int i =0; i < length; i++) {

    ivPointArray[position].setBackgroundResource(R.drawable.point_press);

    if (position != i){

    ivPointArray[i].setBackgroundResource(R.drawable.point_normal);

    }

    }

    //        判断是否是最后一页

            if (position ==imageIdArray.length -1) {

    ib_start.setVisibility(View.VISIBLE);

    }else{

    ib_start.setVisibility(View.GONE);

    }

    }

    @Override

        public void onPageScrollStateChanged(int state) {

    }

    }

    相关文章

      网友评论

          本文标题:带小圆点的viewpager

          本文链接:https://www.haomeiwen.com/subject/nrzuvftx.html