<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size android:width="8dp"
android:height="8dp"/>
<solid android:color="#FFFFFF"/>
</shape>
package com.demo.cyq;
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.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private ViewPager viewPage;
private TextView imgDescription;
private ArrayList images;
private LinearLayout ll_point_group;
private int[] imgesId = {R.mipmap.banner1, R.mipmap.banner2, R.mipmap.banner3, R.mipmap.banner4};
private String[] imgDescriptions = {"Facebooks Audience Network", "新一代Mac Pro发布", "全国大学生珠三角论坛", "Maple 2016"};
private int presentPostion = 0;
private final int OPTION_TYPE_AUTO = 1, OPTION_TYPE_POINT = 2;
private static int pointClickPosition = 0; //point点击的位置
private boolean isDraging = false;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
int option = msg.what;
switch (option) {
case OPTION_TYPE_AUTO: //option==1执行viewPage跳转到下一个
int currentPostion = viewPage.getCurrentItem();//获得当前的ViewPage位置
viewPage.setCurrentItem(++currentPostion, true);
handler.sendEmptyMessageDelayed(OPTION_TYPE_AUTO, 3000);//回调handler 实现自动轮播
break;
case OPTION_TYPE_POINT:
//重新设置Adapter 这个地方不设置就会报如下错误 很诡异:
// The specified child already has a parent. You must call removeView() on the child's parent first
int currentPostion2 = viewPage.getCurrentItem();//获得当前的ViewPage位置
viewPage.setAdapter(new MyViewPageAdapter());
viewPage.setCurrentItem(currentPostion2 - currentPostion2 % images.size() + pointClickPosition, true);
handler.sendEmptyMessageDelayed(OPTION_TYPE_AUTO, 3000);//回调handler 实现自动轮播
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toobar);
toolbar.setTitle("ViewPage实现图片轮播");
setSupportActionBar(toolbar);
viewPage = (ViewPager) findViewById(R.id.viewPage);
ll_point_group = (LinearLayout) findViewById(R.id.ll_point_group);
imgDescription = (TextView) findViewById(R.id.imgDescr