一: GestureDetectorhtml
http://blog.csdn.net/jjwwmlp456/article/details/21282239 寫的不錯,可是java
博文中有錯誤,正確的寫法是:android
@Overrideweb
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {ide
if (e1.getX()-e2.getX()>120) {//左滑,右邊顯示動畫
ToastUtils.showShortToast(PersonalCenterActivity2.this, "左滑,右邊顯示");this
}spa
if(e1.getX()-e2.getX()<-120) {.net
ToastUtils.showShortToast(PersonalCenterActivity2.this, "右滑,左邊顯示");orm
}
return false;
}
http://www.cnblogs.com/ok-lanyan/archive/2012/08/02/2619701.html
二:Android的Activity屏幕切換動畫(一)-左右滑動切換:
http://www.oschina.net/question/97118_34343
三:android開發中Webview沒法觸發手勢方法(ontouchevent,onfling...)的解決方法:
http://www.android100.org/html/201403/08/5830.html
@Override
public boolean dispatchTouchEvent(MotionEvent ev) { //注意這裏不能用ONTOUCHEVENT方法,否則無效的
Toast.makeText(NewsContent.this, "jinru", 1).show();
detector.onTouchEvent(ev);
webview.onTouchEvent(ev);
return super.dispatchTouchEvent(ev);
}
適用與webview,scollview,listview。
Acitity中有listview,手勢沒法實現 :
http://www.apkbus.com/android-121113-1-1.html
Android Activity之間切換出現短暫黑屏的處理方法:
style name="startTheme" parent="@android:style/Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item><!--無標題-->
</style>
http://blog.csdn.net/toyuexinshangwan/article/details/8559253
四:上下左右滑動衝突問題:
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
double angle = Math.atan2(Math.abs(distanceY), Math.abs(distanceX));
// System.out.println("angle-->" + (180 * angle) / Math.PI);
if ((180 * angle) / Math.PI < 180) {
return false;
}
return false;
}
5、Android開發ScrollView上下左右滑動事件衝突整理二(根據角度)
http://zwnjava.iteye.com/blog/1698751
6、用Activity的onTouchEvent方法實現監聽手指上下左右滑動:
@Override
public boolean onTouchEvent(MotionEvent event) {
//繼承了Activity的onTouchEvent方法,直接監聽點擊事件
if(event.getAction() == MotionEvent.ACTION_DOWN) {
//當手指按下的時候
x1 = event.getX();
y1 = event.getY();
}
if(event.getAction() == MotionEvent.ACTION_UP) {
//當手指離開的時候
x2 = event.getX();
y2 = event.getY();
if(y1 - y2 > 50) {
Toast.makeText(MainActivity.this, "向上滑", Toast.LENGTH_SHORT).show();
} else if(y2 - y1 > 50) {
Toast.makeText(MainActivity.this, "向下滑", Toast.LENGTH_SHORT).show();
} else if(x1 - x2 > 50) {
Toast.makeText(MainActivity.this, "向左滑", Toast.LENGTH_SHORT).show();
} else if(x2 - x1 > 50) {
Toast.makeText(MainActivity.this, "向右滑", Toast.LENGTH_SHORT).show();
}
}
return super.onTouchEvent(event);
}
原文地址:http://blog.csdn.net/qiantujava/article/details/9903891