Android之監聽View的兩個指頭是放大和縮小
我們有時需要對view進行手勢監聽,通過兩個手指開始距離和結束距離,來判斷放大縮小,下面是實現程式碼,所有View通用。
private double nLenStart = 0;//監聽 WebView所用手勢
@Override
public boolean onTouch(View v, MotionEvent event) {
int nCnt = event.getPointerCount();
int n = event.getAction();
if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_DOWN && 2 == nCnt)//<span style="color:#ff0000;">2表示兩個手指</span>
{
for (int i = 0; i < nCnt; i++) {
float x = event.getX(i);
float y = event.getY(i);
Point pt = new Point((int) x, (int) y);
}
int xlen = Math.abs((int) event.getX(0) - (int) event.getX(1));
int ylen = Math.abs((int) event.getY(0) - (int) event.getY(1));
nLenStart = Math.sqrt((double) xlen * xlen + (double) ylen * ylen);
} else if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP && 2 == nCnt) {
for (int i = 0; i < nCnt; i++) {
float x = event.getX(i);
float y = event.getY(i);
Point pt = new Point((int) x, (int) y);
}
int xlen = Math.abs((int) event.getX(0) - (int) event.getX(1));
int ylen = Math.abs((int) event.getY(0) - (int) event.getY(1));
double nLenEnd = Math.sqrt((double) xlen * xlen + (double) ylen * ylen);
if (nLenEnd > nLenStart)//通過兩個手指開始距離和結束距離,來判斷放大縮小
{
Toast.makeText(getApplicationContext(), "放大", Toast.LENGTH_SHORT).show();
tv_web_danGe.getSettings().setTextSize(WebSettings.TextSize.LARGER);
tv_web_danGe.reload();
tv_web_danGe.loadDataWithBaseURL(null, getHtmlData(content),"text/html","UTF-8",null);//顯示WebView
} else {
Toast.makeText(getApplicationContext(), "縮小", Toast.LENGTH_SHORT).show();
tv_web_danGe.getSettings().setTextSize(WebSettings.TextSize.NORMAL);
tv_web_danGe.reload();
tv_web_danGe.loadDataWithBaseURL(null, getHtmlData(content),"text/html","UTF-8",null);//顯示WebView
}
}
return false;
}
相關文章
- js如何監聽頁面縮放?JS
- Oracle啟動兩個監聽Oracle
- 自定義圖片裁剪之雙指縮放思路
- CSS段落開頭縮排兩個漢字CSS
- Android多程式之Binder解綁監聽的問題Android
- Android截圖監聽Android
- 滑鼠懸浮從中心放大和縮小的半透明遮罩層遮罩
- centos的監聽http小程式CentOSHTTP
- 2018.03.31、Android-ObjectBox-監聽AndroidObject
- java鍵盤監聽之視窗監聽的實現Java
- Android的事件處理——監聽介面方式Android事件
- Android自定義View之Canvas的使用AndroidViewCanvas
- vue之監聽事件Vue事件
- 解決小程式web-view兩個噁心問題WebView
- Android 自定義 View 之 LeavesLoadingAndroidView
- android imageview 縮放檢視圖片AndroidView
- vue2的監聽watch小爆料Vue
- Android搖一搖、螢幕方向的監聽Android
- Android Home鍵、鎖屏鍵監聽Android
- Android 監聽生命週期工具庫Android
- android PopupWindow監聽返回鍵無效Android
- Android掃碼槍監聽封裝Android封裝
- Android開發之監聽軟鍵盤狀態(彈出收回)Android
- Android自定義View之Window、ViewRootImpl和View的三大流程AndroidView
- Android自定義View之捲尺AndroidView
- Android studio(建立、監聽器intent選單)AndroidIntent
- 03.Android之View原理問題AndroidView
- Android 自定義 View 實戰之 PuzzleViewAndroidView
- Android 自定義 View 之入門篇AndroidView
- Android自定義view之emoji鍵盤AndroidView
- JVM之壓縮指標(CompressedOops)JVM指標OOP
- vue是如何監聽陣列變化的Vue陣列
- Android自定義view之實現帶checkbox的SnackbarAndroidView
- 監聽 watch props物件屬性監聽 或深度監聽物件
- 雷火神山直播超兩億,Web播放器事件監聽是怎麼實現的?Web播放器事件
- Android監聽使用者行為操作(AccessibilityService)Android
- Android監聽軟鍵盤收起與彈出Android
- 監聽配置細節引數詳解兩則