//MainActivity
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity----";
private String image1 = "http://img2.imgtn.bdimg.com/it/u=783340072,1312243264&fm=214&gp=0.jpg";
private String image2 = "http://img.zcool.cn/community/038c0ee5744f9a500000025ae5acd2a.jpg";
private String image3 = "http://img5.duitang.com/uploads/item/201411/06/20141106104720_WHEe2.jpeg";
private String image4 = "http://android.tgbus.com/bizhi/UploadFiles_7790/201204/20120423124456526.jpg";
private String[] urls = new String[]{image1, image2, image3, image4};
private ViewPager main_vp;
private List<ImageView> imageViews = new ArrayList<>();
private List<ImageView> points = new ArrayList<>();
private MyHandler myHandler=new MyHandler();
private LinearLayout ll_points;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
//初始化数据
initDatas();
Log.d(TAG, "onCreate: " + imageViews.size());
MyAdapter myAdapter = new MyAdapter(imageViews);
main_vp.setAdapter(myAdapter);
main_vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Log.d(TAG, "onPageSelected: "+position);
position=position%imageViews.size();
for (int i = 0; i < points.size(); i++) {
if (i==position){
points.get(i).setSelected(true);
}else {
points.get(i).setSelected(false);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//开启
autoPlay();
}
private void initViews() {
main_vp = findViewById(R.id.main_vp);
ll_points = findViewById(R.id.ll_points);
}
private void autoPlay() {
myHandler.sendEmptyMessageDelayed(0,2000);
}
//开始自动轮播
//结束自动轮播
public void stopPlay() {
myHandler.removeCallbacksAndMessages(null);
}
private void initDatas() {
for (int i = 0; i < urls.length; i++) {
ImageView imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//加载网络图片
ImageLoader.getInstance().displayImage(urls[i], imageView, MyApp.getOptions());
//将imageview添加到集合
imageViews.add(imageView);
//添加小圆点
ImageView point = new ImageView(this);
point.setImageResource(R.drawable.circle_selector);
//添加到布局里面
ll_points.addView(point);
points.add(point);
}
//默认第一个选中
points.get(0).setSelected(true);
}
//适配器
class MyAdapter extends PagerAdapter {
private List<ImageView> list;
public MyAdapter(List<ImageView> list) {
this.list = list;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
position = position % list.size();
ImageView imageView = list.get(position);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((ImageView) object);
}
}
class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
Log.d(TAG, "接到消息-----=-");
int postion = main_vp.getCurrentItem()+1;
main_vp.setCurrentItem(postion);
myHandler.sendEmptyMessageDelayed(0,2000);
break;
}
}
}
@Override
protected void onPause() {
super.onPause();
stopPlay();
}
}
//MyApp
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
//创建默认的ImageLoader配置参数
ImageLoaderConfiguration configuration = ImageLoaderConfiguration
.createDefault(this);
//Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(configuration);
}
public static DisplayImageOptions getOptions(){
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true) // default
.cacheOnDisk(true) // default
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default
.bitmapConfig(Bitmap.Config.ARGB_8888) // default
.handler(new Handler()) // default
.build();
return options;
}
}