用Activity的onTouchEvent方法實現監聽手指上下左右滑動
試了很久的ongesturelistener,但一直導不僅包,出現錯誤,最後用了onTouchEvent來處理左右移動的問題。主要是根據開始的座標和結束時的座標進行比較。
應用了Activity的ontouchEvent方法監聽手指點選事件,手指滑動的時候會先按下,滑倒另一個地方再抬起,我們就可以根據按下的座標和抬起的座標算出使用者是往哪一個方向滑動了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
package com.example.testtt;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;
public class MainActivity extends Activity {
//手指按下的點為(x1, y1)手指離開螢幕的點為(x2, y2)
float x1 = 0;
float x2 = 0;
float y1 = 0;
float y2 = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@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);
}
}
進行修改就可以了
在這個基礎上
|
相關文章
- Android實現Activity的滑動返回效果Android
- Activity側滑返回的實現原理
- 監聽activity、fragment生命Fragment
- 手勢滑動之玩轉onTouchEvent()與Scroller
- jQuery滑動方式上下左右滾動效果jQuery
- iOS runtime實用篇--監聽方法的呼叫iOS
- java鍵盤監聽之視窗監聽的實現Java
- Java可以如何實現檔案變動的監聽Java
- 用ListView簡單實現滑動列表View
- pan手勢監聽對view的上下左右滑動,利用關聯物件在block中觸發view的點選事件(附手勢大全)View物件BloC事件
- Lumen 實現 SQL 監聽SQL
- Jbpm4監聽的實現
- Android可滑動Tab的3種實現方法Android
- UIPanGestureRecognizer上下左右滑動方向判斷演算法UI演算法
- 如何在vue中監聽scroll,從而實現滑動載入更多Vue
- flutter 中監聽滑動事件Flutter事件
- Android 進出activity的滑動動畫效果Android動畫
- 閱讀layim程式碼小記,監聽事件實現方法事件
- Java GUI之事件監聽與處理的匿名類實現方法JavaGUI事件
- 用 Swift 實現通知推送的新手指南Swift
- 關於監聽不能啟動的解決方法
- 用css實現thead隨著滑動條滾動的tableCSS
- 動態監聽與靜態監聽
- 動態監聽和靜態監聽
- angular 監聽 Windows 滾動事件 實現頁面滾動載入AngularWindows事件
- 監聽者模式實戰應用模式
- OkHttp優雅的實現下載監聽HTTP
- 直播app開發搭建,載入Html片段監聽滑動到底部APPHTML
- ORACLE動態監聽與靜態監聽Oracle
- oracle靜態監聽和動態監聽Oracle
- 【oracle】動態監聽與靜態監聽Oracle
- canvas實現滑動驗證Canvas
- 直播平臺軟體開發,監聽WebView滑動到底部的兩種方式WebView
- JavaFx 監聽剪下板實現(Kotlin)JavaKotlin
- 預設及非預設埠的動態監聽/靜態監聽實驗彙總
- Tomcat監聽443埠的方法Tomcat
- 同時配置動態監聽與靜態監聽
- 原始碼級別的廣播與監聽實現原始碼