|
|
@@ -7,6 +7,7 @@ import android.support.v4.view.PagerAdapter;
|
|
|
import android.support.v4.view.ViewPager;
|
|
|
import android.text.TextUtils;
|
|
|
import android.view.Gravity;
|
|
|
+import android.view.MotionEvent;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
import android.widget.AdapterView;
|
|
|
@@ -120,7 +121,8 @@ public class ImageGlarryDrawable {
|
|
|
if (mList.size() > 1) {//有两张或以上图片,开始轮播
|
|
|
if (!mIsMoved) {
|
|
|
mIsMoved = true;
|
|
|
- handler.sendEmptyMessageDelayed(0, mIntDelayTime);
|
|
|
+ handler.removeMessages(1);
|
|
|
+ handler.sendEmptyMessageDelayed(1, mIntDelayTime);
|
|
|
}
|
|
|
//handler.sendEmptyMessageDelayed(1, mIntDelayTime);
|
|
|
} else if (mList.size() == 1) {//如果只有一个或没有,就隐藏Group
|
|
|
@@ -133,6 +135,7 @@ public class ImageGlarryDrawable {
|
|
|
mViewPager.setAdapter(pagerAdapter);
|
|
|
mViewPager.setCurrentItem(0);
|
|
|
mViewPager.addOnPageChangeListener(onPageChangeListener);
|
|
|
+ mViewPager.setOnTouchListener(onTouchListener);
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
@@ -155,15 +158,22 @@ public class ImageGlarryDrawable {
|
|
|
@Override
|
|
|
public void handleMessage(Message msg) {
|
|
|
super.handleMessage(msg);
|
|
|
- if (mActivity.isFinishing() || mList.size() < 2) {
|
|
|
- return;
|
|
|
+ switch (msg.what){
|
|
|
+ case 1:
|
|
|
+ pagerAdapter.notifyDataSetChanged();
|
|
|
+ if (mActivity.isFinishing() || mList.size() < 2) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (mViewPager.getCurrentItem() >= mList.size() - 1) {
|
|
|
+ mViewPager.setCurrentItem(0, true);
|
|
|
+ } else {
|
|
|
+ mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true);
|
|
|
+ }
|
|
|
+ handler.removeMessages(1);
|
|
|
+ sendEmptyMessageDelayed(1, mIntDelayTime);
|
|
|
+ break;
|
|
|
}
|
|
|
- if (mViewPager.getCurrentItem() >= mList.size() - 1) {
|
|
|
- mViewPager.setCurrentItem(0, true);
|
|
|
- } else {
|
|
|
- mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true);
|
|
|
- }
|
|
|
- sendEmptyMessageDelayed(0, mIntDelayTime);
|
|
|
+
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -198,6 +208,32 @@ public class ImageGlarryDrawable {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ /**
|
|
|
+ * touch
|
|
|
+ */
|
|
|
+ private View.OnTouchListener onTouchListener = new View.OnTouchListener() {
|
|
|
+ @Override
|
|
|
+ public boolean onTouch(View v, MotionEvent event) {
|
|
|
+ switch (event.getAction()){
|
|
|
+ case MotionEvent.ACTION_DOWN:
|
|
|
+ if(handler != null){
|
|
|
+ handler.removeMessages(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ case MotionEvent.ACTION_CANCEL:
|
|
|
+ case MotionEvent.ACTION_MOVE:
|
|
|
+ if (mList.size() > 1) {//有两张或以上图片,开始轮播
|
|
|
+ mIsMoved = false;
|
|
|
+ mIsMoved = true;
|
|
|
+ handler.removeMessages(1);
|
|
|
+ handler.sendEmptyMessageDelayed(1, mIntDelayTime);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
* ViewPager
|