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

首頁(yè) > 系統(tǒng) > Android > 正文

Android編程實(shí)現(xiàn)兩點(diǎn)觸控功能示例

2019-12-12 02:07:35
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Android編程實(shí)現(xiàn)兩點(diǎn)觸控功能。分享給大家供大家參考,具體如下:

下面是一個(gè)兩點(diǎn)觸控的案例代碼:

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);  }}

下面是該案例的一些分析要點(diǎn):

1)使用event.getPointerCount()來獲取當(dāng)前觸控點(diǎn)的個(gè)數(shù)。并判斷觸控點(diǎn),來分別對(duì)不同的點(diǎn)進(jìn)行事件處理。

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

3)只有第二個(gè)點(diǎn)按下之后,才會(huì)響應(yīng)MotionEvent.ACTION_POINTER_1_DOWNMotionEvent.ACTION_POINTER_1_UP,初次單擊是不響應(yīng)這兩個(gè)事件碼的。這點(diǎn)切記。

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

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android資源操作技巧匯總》、《Android操作json格式數(shù)據(jù)技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳春市| 玛纳斯县| 中超| 富锦市| 黔西| 东乌| 色达县| 新建县| 沿河| 延寿县| 兴安盟| 延津县| 阿图什市| 如皋市| 乌什县| 昌黎县| 牟定县| 福州市| 都昌县| 石首市| 交城县| 阳东县| 南郑县| 包头市| 荆州市| 扶沟县| 白朗县| 武义县| 远安县| 苍溪县| 瑞金市| 乌拉特前旗| 辽中县| 临朐县| 通河县| 潞西市| 巴楚县| 枣庄市| 澎湖县| 扶余县| 台山市|