引导页 小实例 ViewPager

来源:互联网 发布:一键转发朋友圈 源码 编辑:程序博客网 时间:2024/06/15 07:20



 indicator_layout4.xml   

 

 

<ImageView       android:layout_width="match_parent"       android:layout_height="match_parent"       android:scaleType="centerCrop"       android:src="@mipmap/a4"            //图片不一样       android:id="@+id/imageView2" />                     //id不一样  四套其他一样 </LinearLayout>

 

 

 

activity_main.xml部分:

 

 

<android.support.v4.view.ViewPager       android:layout_width="match_parent"       android:layout_height="match_parent"       android:id="@id/viewPager"/>   <LinearLayout       android:layout_width="match_parent"       android:layout_height="wrap_content"       android:orientation="horizontal"       android:id="@+id/point_layout"       android:gravity="center"       android:layout_marginBottom="80dp"       android:layout_alignParentBottom="true"       android:layout_alignParentStart="true">       <ImageView           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:src="@mipmap/default_holo" />       <ImageView           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:src="@mipmap/default_holo" />       <ImageView           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:src="@mipmap/default_holo" />       <ImageView           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:src="@mipmap/default_holo" />   </LinearLayout> </RelativeLayout>


 

 

 

 

MainActivity.java部分

 

public class Main2Activity extends Activityimplements ViewPager.OnPageChangeListener{    private ViewPager viewPager;   private ArrayList<View> views = new ArrayList<>();   private ArrayList<ImageView> imageViews = new ArrayList<>();   @Override   protected void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(R.layout.activity_main2);       viewPager = (ViewPager) findViewById(R.id.viewPager);       initView();       initPointView();       viewPager.setAdapter(new MyPagerAdapter(views));       viewPager.addOnPageChangeListener(this);//       viewPager.setCurrentItem(0);    }    //初始化小圆点视图,默认当前选中第一个小点   private void initPointView(){       LinearLayout point_layout = (LinearLayout)findViewById(R.id.point_layout);       int count = point_layout.getChildCount();       for (int i=0;i<count;i++){           imageViews.add((ImageView) point_layout.getChildAt(i));       }       imageViews.get(0).setImageResource(R.mipmap.touched_holo);    }    /**    * 初始化要切换的视图对象    */   private void initView(){       View v1 = getLayoutInflater().inflate(R.layout.indicator_layout1,null);       View v2 = getLayoutInflater().inflate(R.layout.indicator_layout2,null);       View v3 = getLayoutInflater().inflate(R.layout.indicator_layout3,null);       View v4 = getLayoutInflater().inflate(R.layout.indicator_layout4,null);        views.add(v1);       views.add(v2);       views.add(v3);       views.add(v4);    }    public void onPageScrolled(int position, float positionOffset, intpositionOffsetPixels) {}   public void onPageScrollStateChanged(int state) {}   @Override   public void onPageSelected(int position) {       setSelectedPoint(position);    }    private int prevIndex = 0;   private void setSelectedPoint(int position) {       if(prevIndex!=position) {           //设置上一个被选中的,对应位置的小圆点为未选中状态图片            imageViews.get(prevIndex).setImageResource(R.mipmap.default_holo);       }       //设置当前被选中的,对应位置的小圆点为选中状态图片       imageViews.get(position).setImageResource(R.mipmap.touched_holo);        prevIndex = position;     }     private static class MyPagerAdapter extends PagerAdapter {       private ArrayList<View> views;       public MyPagerAdapter(ArrayList<View> views){           this.views = views;       }       @Override       public Object instantiateItem(ViewGroup container, int position) {           View v = views.get(position);           container.addView(v);           return v;       }       @Override       public void destroyItem(ViewGroup container, int position, Objectobject) {           System.out.println(object);           container.removeView(views.get(position));       }       //要切换的页面总数       @Override       public int getCount() {           return views.size();       }       //验证view视图是否是指定对象       @Override       public boolean isViewFromObject(View view, Object object) {           return view==object;       }    }}


0 0
原创粉丝点击