国产探花免费观看_亚洲丰满少妇自慰呻吟_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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云梦县| 贞丰县| 科技| 安顺市| 辉县市| 乌兰浩特市| 福建省| 河池市| 宜宾县| 北宁市| 青田县| 历史| 启东市| 珠海市| 隆昌县| 二连浩特市| 新乡县| 德惠市| 河北省| 介休市| 敖汉旗| 衡山县| 临猗县| 东平县| 珠海市| 静宁县| 黄浦区| 桃源县| 红原县| 清镇市| 云阳县| 新邵县| 永修县| 金溪县| 民县| 满城县| 东方市| 长沙县| 浙江省| 荆州市| 阳谷县|