大家好,這講和大家分享的是運用GestureDetector手勢滑動頁面。當我們使用一款的軟體,可以肯定的是頁面要有很多的切換,我們還是用點選按鈕切換的話,使用者體驗不高,使用者很快失去興趣,不久就會狠心卸掉該不行軟體。而這時剛好有個工具出現了,GestureDetector手勢的使用大大提高使用者體驗,使用者隻要輕輕滑動頁面,就會實作翻頁的效果。同樣操作起來也是很簡單’,。下面我為大家詳解。
public class BaseSetupActivity extends Activity {
//定義手勢
private GestureDetector mDetector;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context=this;
//初始化GestureDetector,進行監聽OnGestureListener()方法,在onFling方法實作側滑效果
mDetector=new GestureDetector(context, new OnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
//判斷縱向劃動距離不能超過100,Math.abs絕對值
if(Math.abs(e2.getRawY()-e1.getRawY())>100){
ToastUtil.show(context, "不能這樣滑動哦");
return true;
}
//判斷x縱速度
if(Math.abs(velocityX)<100){
ToastUtil.show(context, "速度不能太慢哦");
return true;
}
//翻頁到上一頁
if(e2.getRawX()-e1.getRawX()>200){
intent intent=new Intent(this,perviousActivity.class);
startActivity(intent);
return true;
}
//翻頁到下一頁
if(e1.getRawX()-e2.getRawX()>200){
Intent intent=new Intent(this,nextActivity.class)
return true;
}
return true;
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
});
}
//觸摸事件
public boolean onTouchEvent(MotionEvent event) {
//委托觸摸事件進行觸摸方法
mDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
恩,就是那麼簡單明了,友友看了應該是秒懂知識,但不要小看它,實際開發經常用到的。
就到這裡了,大夥晚安。