ViewPager实现无限轮播+小点点

来源:互联网 发布:u盘安装linux系统 编辑:程序博客网 时间:2024/05/05 14:11
 
//布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="60dp"        android:layout_alignParentBottom="true"        android:layout_marginBottom="20dp"        android:gravity="center"        android:orientation="horizontal">        <ImageView            android:id="@+id/image1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginRight="5dp"            android:background="@drawable/point_mormal" />        <ImageView            android:id="@+id/image2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginRight="5dp"            android:background="@drawable/point_mormal" />        <ImageView            android:id="@+id/image3"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginRight="5dp"            android:background="@drawable/point_mormal" />        <ImageView            android:id="@+id/image4"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginRight="5dp"            android:background="@drawable/point_mormal" />        <ImageView            android:id="@+id/image5"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginRight="5dp"            android:background="@drawable/point_mormal" />    </LinearLayout>    <android.support.v4.view.ViewPager        android:id="@+id/vp"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_alignParentStart="true"        android:layout_alignParentTop="true" /></RelativeLayout>//代码如下:
package com.example.lenovo.viewpagerdemo;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.bumptech.glide.Glide;public class MainActivity extends AppCompatActivity {    private ViewPager vp;    private String[] images = {            "http://l2.51fanli.net//tuan//images//1//5806eac956808.jpg",            "http://l2.51fanli.net//tuan//images//b//580991bb30560.jpg",            "http://l0.51fanli.net//tuan//images//b//58115f2593dc3.jpg",            "http://l2.51fanli.net//tuan//images//0//57923840b054d.jpg",            "http://l2.51fanli.net//tuan//images//e//58101e11ab164.jpg"};    private ImageAdapter adapter;    private ImageView[] points;    private Handler han = new Handler() {        @Override        public void handleMessage(Message msg) {            int i = vp.getCurrentItem();            i++;            vp.setCurrentItem(i);            send();        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        indaview();        points = new ImageView[5];        points[0] = (ImageView) findViewById(R.id.image1);        points[1] = (ImageView) findViewById(R.id.image2);        points[2] = (ImageView) findViewById(R.id.image3);        points[3] = (ImageView) findViewById(R.id.image4);        points[4] = (ImageView) findViewById(R.id.image5);        vp.setCurrentItem(1000);        send();    }    public void send() {        new Thread() {            @Override            public void run() {                han.sendEmptyMessageDelayed(0, 1500);            }        }.start();    }    private void select(int a) {        for (ImageView image : points) {            image.setImageResource(R.drawable.point_mormal);        }        points[a].setImageResource(R.drawable.point_selected);    }    private void indaview() {        vp = (ViewPager) findViewById(R.id.vp);        adapter = new ImageAdapter();        vp.setAdapter(adapter);        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                select(position % images.length);            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    class ImageAdapter extends PagerAdapter {        @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(MainActivity.this);            Glide.with(MainActivity.this).                    load(images[position % images.length]).                    into(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);        }    }}
 //最后别忘了在AndroidManifest.xml添加网络请求
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
原创粉丝点击