图片轮播的第一步

public class MainActivity extends AppCompatActivity {

    private ViewPager mVp;
    private List<ImageView> mlist;
    private TextView tvTitle;
    private LinearLayout llPoints;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mVp = (ViewPager) findViewById(R.id.vp);
        tvTitle = (TextView) findViewById(R.id.tv_title);
        llPoints = (LinearLayout) findViewById(R.id.ll_points);


        //方法:得到res子目录drawable中的图片
        int[] image = getImage();
         final String[] tvTitles = getTitles();
        tvTitle.setText(tvTitles[0]);


        mlist = new ArrayList<>();
        for(int i=0;i<image.length;i++){
            ImageView iv=new ImageView(this);
            iv.setBackgroundResource(image[i]);
            mlist.add(iv);

            //添加小圆点
            View points=new View(this);
            points.setBackgroundResource(R.drawable.dot_normal);
            LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(45,45);
            points.setLayoutParams(params);
            params.leftMargin=5;
            llPoints.addView(points);
        }
        //设置适配器
        mVp.setAdapter(new Myadapter());

        //页面切换的监听方法
//        mVp.setOnPageChangeListener();
        mVp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            //当页面滚动的时候的调用
            //position:位置
            //positionOffset:页面滚动的百分比
            //positionOffsetPixels:页面滚动过的真实的像素距离.
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }
            //当某个页面被选中的时候调用
            @Override
            public void onPageSelected(int position) {
                tvTitle.setText(tvTitles[position]);

            }
            //当某个页面滚动状态发生改变的时候调用.
            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });



    }

    //得到图片中的的文字的方法
    private String[] getTitles() {
        return getResources().getStringArray(R.array.tv_title);

    }

    //得到图片的具体方法
    private int[] getImage() {
        return new int[]{R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e};
    }


    //自定义适配器
    class  Myadapter extends PagerAdapter{

        //决定viewpager中内部视图的个数
        @Override
        public int getCount() {
            return mlist.size();
        }

         //生产viewpager中的子视图
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            container.addView(mlist.get(position));
            return mlist.get(position);
        }

        //移除viewpager中的子视图
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
           container.removeView(mlist.get(position));
        }
        //判断当前视图是否为新视图
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }
    }
}
 
 

<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"
    tools:context="com.bfw.administrator.viewpager.MainActivity">

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="200dp">
    </android.support.v4.view.ViewPager>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
         android:layout_alignBottom="@+id/vp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:gravity="center_horizontal">

        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ldsfjal"
            android:textSize="20sp"
            android:layout_alignBottom="@+id/vp"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="15dp"/>

        <LinearLayout
            android:id="@+id/ll_points"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:gravity="center"
            android:layout_height="wrap_content">

        </LinearLayout>






    </LinearLayout>


</RelativeLayout>



猜你喜欢

转载自blog.csdn.net/Andybfw/article/details/80032158