国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程實現兩點觸控功能示例

2019-10-22 18:28:51
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程實現兩點觸控功能。分享給大家供大家參考,具體如下:

下面是一個兩點觸控的案例代碼:

package com.zzj;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;public class AndroidTestActivity extends Activity {  private float x0, y0;  private float x1, y1;  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);  }  public boolean onTouchEvent(MotionEvent event) {    int pointerCount = event.getPointerCount();    int action = event.getAction();    if (pointerCount == 1) {      switch (action) {      case MotionEvent.ACTION_DOWN:        x0 = event.getX(0);        y0 = event.getY(0);        System.out.println("ACTION_DOWN pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_UP:        System.out.println("ACTION_UP pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_MOVE:        System.out.println("ACTION_MOVE pointerCount=" + pointerCount);        break;      }    }    if (pointerCount == 2) {      switch (action) {      case MotionEvent.ACTION_DOWN:        x0 = event.getX(0);        y0 = event.getY(0);        System.out.println("ACTION_DOWN pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_UP:        System.out.println("ACTION_UP pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_MOVE:        System.out.println("ACTION_MOVE pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_POINTER_1_DOWN:        System.out.println("ACTION_POINTER_1_DOWN pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_POINTER_1_UP:        System.out.println("ACTION_POINTER_1_UP pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_POINTER_2_DOWN:        System.out.println("ACTION_POINTER_2_DOWN pointerCount=" + pointerCount);        break;      case MotionEvent.ACTION_POINTER_2_UP:        System.out.println("ACTION_POINTER_2_UP pointerCount=" + pointerCount);        break;      }    }    return super.onTouchEvent(event);  }}

下面是該案例的一些分析要點:

1)使用event.getPointerCount()來獲取當前觸控點的個數。并判斷觸控點,來分別對不同的點進行事件處理。

2)使用event.getAction()來獲取當前的事件碼,單點按下、松開和移動的事件分別是:MotionEvent.ACTION_DOWNACTION_UPACTION_MOVE;第二個點按下、松開和移動的事件分別是ACTION_POINTER_2_DOWN、        ACTION_POINTER_2_UPACTION_MOVE
注意,單點和兩點響應相同的移動事件,即ACTION_MOVE

3)只有第二個點按下之后,才會響應MotionEvent.ACTION_POINTER_1_DOWNMotionEvent.ACTION_POINTER_1_UP,初次單擊是不響應這兩個事件碼的。這點切記。

4)通過event.getX(0)event.getY(0)來獲取第一個點的坐標值,通過event.getX(1)event.getY(1)來獲取第二個點的坐標值。如果有更多的點,依次類推。

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 红安县| 崇义县| SHOW| 宁武县| 饶河县| 河池市| 澄江县| 渭南市| 大埔县| 平度市| 淮安市| 务川| 丹凤县| 舞钢市| 台北县| 乐山市| 安溪县| 华坪县| 靖州| 古田县| 苍溪县| 隆子县| 青海省| 抚远县| 郎溪县| 马关县| 金阳县| 灵武市| 娱乐| 满洲里市| 新巴尔虎右旗| 女性| 金塔县| 武威市| 天峨县| 石景山区| 肥东县| 黑水县| 马关县| 股票| 漳平市|