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
- JavaScript設定字型放大和縮小JavaScript
- Oracle啟動兩個監聽Oracle
- 同一個伺服器建立兩個監聽器的話,兩個監聽器的port和KEY都不能相同伺服器
- 自定義圖片裁剪之雙指縮放思路
- Oracle 10g 兩個監聽程式的故障Oracle 10g
- 【監聽】兩庫互配靜態監聽
- CSS段落開頭縮排兩個漢字CSS
- CSS3 滑鼠懸浮元素放大和縮小效果CSSS3
- 滑鼠懸浮從中心放大和縮小的半透明遮罩層遮罩
- oracle 10g出現兩個監聽程式Oracle 10g
- centos的監聽http小程式CentOSHTTP
- 【LISTENER】一個資料庫配置兩個監聽埠號資料庫
- Android 圖片縮放Android
- android 拖拽與縮放Android
- java鍵盤監聽之視窗監聽的實現Java
- Android多程式之Binder解綁監聽的問題Android
- android之Notification監聽系統清除通知欄Android
- Android截圖監聽Android
- vue之監聽事件Vue事件
- 【Android動畫】之Tween動畫 (漸變、縮放、位移、旋轉)Android動畫
- 解決小程式web-view兩個噁心問題WebView
- vue2的監聽watch小爆料Vue
- Android在多個Activity之間共享一個ViewAndroidView
- Android 可平移,縮放,旋轉的ImageViewAndroidView
- Android自定義View:一個精緻的打鉤小動畫AndroidView動畫
- Android:ImageView圖片縮放、居中AndroidView
- Windows server 防火牆開放oracle監聽埠WindowsServer防火牆Oracle
- Android Home鍵監聽Android
- Android技能樹 — View小結AndroidView
- Android的事件處理——監聽介面方式Android事件
- Android 監聽home鍵的動作Android
- android imageview 縮放檢視圖片AndroidView
- home鍵監聽(Android應用切換到後臺監聽)Android
- C的兩個數值交換(Android之JNI)Android
- Android Service 服務的應用之電話監聽器以及簡訊監聽器Android
- Android Hook 全面入侵監聽器AndroidHook
- Android.GridView事件監聽AndroidView事件