首先在布局中写viewpager控件
activity_main.xml 下面linearlayout是小圆点的布局
- <android.support.v4.view.ViewPager
- android:id="@+id/viewPager"
- android:layout_gravity="center_horizontal"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- />
- <LinearLayout
- android:id="@+id/linear_layout"
- android:layout_marginBottom="10dp"
- android:layout_centerHorizontal="true"
- android:orientation="horizontal"
- android:layout_alignParentBottom="true"
- android:layout_width="100dp"
- android:layout_height="50dp">
- </LinearLayout>
找到对应的控件
- viewPager = (ViewPager) findViewById(R.id.viewPager);
- linearLayout = (LinearLayout) findViewById(R.id.linear_layout);
shape01.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <!--没选中的小圆点-->
- <corners android:radius="5dp"/>
- <size android:width="10dp" android:height="10dp"/>
- <solid android:color="#000000"/>
- </shape>
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <!--选中的小圆点-->
- <corners android:radius="5dp"/>
- <size android:width="10dp" android:height="10dp"/>
- <solid android:color="#ff0000"/>
- </shape>
- //初始化小圆点的方法
- private void initshape(){
- //创建装着小圆点的集合
- listshape = new ArrayList<>();
- //清空布局和集合
- linearLayout.removeAllViews();
- listshape.clear();
- for (int i=0;i<3;i++){
- ImageView imageView = new ImageView(MainActivity.this);
- if(i==0){
- //如果当前是第一页,就设置选中的图片
- imageView.setImageResource(R.drawable.shape02);
- }else{
- imageView.setImageResource(R.drawable.shape01);
- }
- LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
- layoutParams.setMargins(9,0,9,0);
- //添加到集合和布局里
- listshape.add(imageView);
- linearLayout.addView(imageView,layoutParams);
- }
- }
- initshape();
- viewPager.setCurrentItem(100000);
- setAdapter();
- handler.sendEmptyMessageDelayed(0,2000);
- viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- for (int i =0;i<listshape.size();i++){
- if(i==position%listshape.size()){
- listshape.get(i).setImageResource(R.drawable.shape02);
- }else{
- listshape.get(i).setImageResource(R.drawable.shape01);
- }
- }
- }
- @Override
- public void onPageSelected(int position) {
- }
- @Override
- public void onPageScrollStateChanged(int state) {
- }
- });
- public void setAdapter(){
- if(imageAdapter==null) {
- imageAdapter = new ImageAdapter(MainActivity.this, list);
- viewPager.setAdapter(imageAdapter);
- }else{
- imageAdapter.notifyDataSetChanged();
- }
- }
适配器里面的
- public class ImageAdapter extends PagerAdapter{
- Context context;
- List<ProductBean.DataBean> list;
- public ImageAdapter(Context context, List<ProductBean.DataBean> list) {
- this.list = list;
- this.context = context;
- }
- @Override
- public int getCount() {
- return Integer.MAX_VALUE;
- }
- @Override
- public boolean isViewFromObject(View view, Object object) {
- return view==object;
- }
- @Override
- public Object instantiateItem(ViewGroup container, int position) {
- ImageView imageView = new ImageView(context);
- imageView.setScaleType(ImageView.ScaleType.FIT_XY);
- String images = list.get(0).getImages();
- String[] split = images.split("\\|");
- ImageLoader.getInstance().displayImage(split[position%split.length],imageView);
- container.addView(imageView);
- return imageView;
- }
- @Override
- public void destroyItem(ViewGroup container, int position, Object object) {
- // super.destroyItem(container, position, object);
- container.removeView((View) object);
- }
- }