ViewPager添加圆点

来源:互联网 发布:java培训机构排名 编辑:程序博客网 时间:2024/06/04 08:17

ViewPager用法参考上一篇http://blog.csdn.net/taoolee/article/details/48162507

方法一XML中实现

public class MainActivity extends Activity {    private ViewPager mViewPager;    private List<View> views;    //管理圆点的    private List<View>dots;    private LayoutInflater mInflater;    private int oldPosition = 0;// 记录上一次点的位置    private int currentItem; // 当前页面    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        dots = new ArrayList<View>();        dots.add(findViewById(R.id.dot_1));        dots.add(findViewById(R.id.dot_2));        dots.add(findViewById(R.id.dot_3));//另外一种实现方法实在代码中实现        for(int i=0;i<3;i++){            ImageView iv1=new ImageView(this);            iv1.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));            iv1.setImageResource(R.mipmap.point_normal);        }        mViewPager = (ViewPager) findViewById(R.id.viewpager);        views = new ArrayList<>();        mInflater = getLayoutInflater();        View view1 = mInflater.inflate(R.layout.viewpager_item1, null);        View view2 = mInflater.inflate(R.layout.viewpager_item2, null);        View view3 = mInflater.inflate(R.layout.viewpager_item3, null);        views.add(view1);        views.add(view2);        views.add(view3);        MyAdapter myAdapter=new MyAdapter(views);        mViewPager.setAdapter(myAdapter);        //因为开始页面不响应页面滑动,所以先把开始页面设置为选中背景        dots.get(0).setBackgroundResource(R.mipmap.point_select);        //设置ViewPager的默认项, 设置为长度的100倍,这样子开始就能往左滑动       // mViewPager.setCurrentItem((views.size()) * 100);        //addOnPageChangeListener替换掉setOnPageChangeListener        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            //当前页面            @Override            public void onPageSelected(int position) {                // TODO Auto-generated method stub                dots.get(oldPosition).setBackgroundResource(R.mipmap.point_normal);                dots.get(position).setBackgroundResource(R.mipmap.point_select);                oldPosition = position;                currentItem = position;            }            @Override            public void onPageScrolled(int arg0, float arg1, int arg2) {            }            @Override            public void onPageScrollStateChanged(int arg0) {            }        });    }}
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    tools:context=".MainActivity">    <FrameLayout        android:layout_width="match_parent"        android:layout_height="match_parent" >        <android.support.v4.view.ViewPager            android:id="@+id/viewpager"            android:layout_width="match_parent"            android:layout_height="match_parent" />        <LinearLayout            android:layout_width="match_parent"            android:layout_height="35dip"            android:layout_gravity="bottom"            android:gravity="center"            android:orientation="vertical" >            <LinearLayout                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_marginTop="3dip"                android:orientation="horizontal" >                <View                    android:id="@+id/dot_1"                    android:layout_width="10dip"                    android:layout_height="10dip"                    android:layout_marginLeft="2dip"                    android:layout_marginRight="2dip"                    android:background="@mipmap/point_normal" />                <View                    android:id="@+id/dot_2"                    android:layout_width="10dip"                    android:layout_height="10dip"                    android:layout_marginLeft="2dip"                    android:layout_marginRight="2dip"                    android:background="@mipmap/point_normal" />                <View                    android:id="@+id/dot_3"                    android:layout_width="10dip"                    android:layout_height="10dip"                    android:layout_marginLeft="2dip"                    android:layout_marginRight="2dip"                    android:background="@mipmap/point_normal" />            </LinearLayout>        </LinearLayout>    </FrameLayout></RelativeLayout>

方法二代码中实现

public class MainActivity extends Activity {    private ViewPager mViewPager;    private List<View> views;    //管理圆点的    private List<ImageView> dots;    private LayoutInflater mInflater;    private LinearLayout mLinearLayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //另外一种实现方法在代码中实现        dots = new ArrayList<>();        mLinearLayout= (LinearLayout) findViewById(R.id.linerlayout);        for (int i = 0; i < 3; i++) {            ImageView iv1 = new ImageView(this);            iv1.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));            iv1.setImageResource(R.mipmap.point_normal);            iv1.setLeft(50);            dots.add(iv1);            mLinearLayout.addView(iv1);        }        //因为开始页面不响应页面滑动,所以先把开始页面设置为选中背景setBackgroundResource不可以        dots.get(0).setImageResource(R.mipmap.point_select);        mViewPager = (ViewPager) findViewById(R.id.viewpager);        views = new ArrayList<>();        mInflater = getLayoutInflater();        View view1 = mInflater.inflate(R.layout.viewpager_item1, null);        View view2 = mInflater.inflate(R.layout.viewpager_item2, null);        View view3 = mInflater.inflate(R.layout.viewpager_item3, null);        views.add(view1);        views.add(view2);        views.add(view3);        MyAdapter myAdapter = new MyAdapter(views);        mViewPager.setAdapter(myAdapter);        //addOnPageChangeListener替换掉setOnPageChangeListener        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            //当前页面            @Override            public void onPageSelected(int position) {             //遍历当前页改变背景其他背景设为常规                for (ImageView iv1 : dots) {                    iv1.setImageResource(R.mipmap.point_normal);                }                dots.get(position).setImageResource(R.mipmap.point_select);            }            @Override            public void onPageScrolled(int arg0, float arg1, int arg2) {            }            @Override            public void onPageScrollStateChanged(int arg0) {            }        });    }}
<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    tools:context=".MainActivity">    <FrameLayout        android:layout_width="match_parent"        android:layout_height="match_parent" >        <android.support.v4.view.ViewPager            android:id="@+id/viewpager"            android:layout_width="match_parent"            android:layout_height="match_parent" />        <LinearLayout            android:id="@+id/linerlayout"            android:layout_width="match_parent"            android:layout_height="50dip"            android:layout_gravity="bottom"            android:gravity="center"            android:orientation="horizontal" >        </LinearLayout>    </FrameLayout></RelativeLayout>
0 1
原创粉丝点击