アフィリエイト広告を利用しています

広告

posted by fanblog

2018年05月27日

MotionEventの使い方備忘録

MotionEvent
概要

・android.view.MotionEvent配下のリスナー
・入力イベントの取得
・・タッチ入力など

クラス図
android_hardware.png


呼び出し方

onCreate()内で利用定義

<対象パーツ(スクリーン、ボタンなど)>.setOnTouchListener(new View.OnTouchListener(){
 public boolean onTouchEvent(MotionEvent event) {

 }
});

ここで、対象物を指定して、タッチ入力の取得が行える。
eventに入力状況が保存されている。
例えば、以下のように値を取得することで、画面に「触れた」「放した」、指を「スライドさせた」などの動作を取得することができる。

event.getAction()

主要な取得可能な値

eventから取得できる値を記載する。
マルチタッチに対応しており、複数の指の座標の取得が可能。
ただし、タッチ位置を取得するgetX()などの値には、1つの座標のみが取得可能。
スクリーンに初めに触れた指から0→1...と順に値が振られる。
スクリーンからすべての指を放した際に、振られた値はリセットされる。
(※マルチタッチ時は例外。放した指の値のみ解放される。)

  1. デバイス情報:getDevice
    例えば、amazonのfire8で取得される情報は以下のようなものである。

    Input Device(int): 入力したデバイスのID。機器ごとに決まる。

    Descriptor(string): 入力デバイスのディスクリプター

    Generation: デバイスの世代情報。fire8は"28"

    Location: fire8は"built-in"

    Keyboard Type: キーボード情報。タッチ入力の場合?"none"

    Has Vibrator: バイブ機能。タッチ入力の場合?"false"

    Source: タッチスクリーンの入力可能情報。
    ・AXIS_X: x方向(横、水平)のサイズ
    ・AXIS_Y: y方向(縦、垂直)のサイズ
    ・AXIS_PRESSURE: 感圧?
    ・AXIS_SIZE:
    ・AXIS_TOUCH_MAJIR:
    ・AXIS_TOUCH_MINOR:
    ・AXIS_TOOL_MAJIR:
    ・AXIS_TOOL_MINOR:


  2. x方向のタッチ位置:getX
    引数にintの値を入力することで、マルチタッチ時に複数の座標を取得することができる。
    例)event.getX(1)

  3. y方向のタッチ位置:getY

  4. タッチし始めた時間を取得:getDownTime
    デバイス内部のシステム起動時間

  5. タッチ動作:getAction
    それぞれ頭の[(int)]が返値。MotionEventの該当動作も記載。

    ・[0] MotionEvent.ACTION_DOWN: 指一本のみ触れた

    ・[1] MotionEvent.ACTION_UP: 指一本のみで触れていた場合、指を放した

    ・[2] MotionEvent.ACTION_MOVE: 指一本のみで触れていた場合、指を動かした

    ・[?] MotionEvent.ACTION_CANCEL: タッチ操作では呼ばれない?

    ・[5] ???: 発生トリガー不明(複数本の指で触れていた時に、放すと取得されることもある)

    ・[6] ???: 発生トリガー不明(複数本の指で触れていた時に、放すと取得されることもある)

    ・[261] ???: 2本の指で触れた

    ・[262] ???: 2本の指で触れていたときに、指を1本放した

    ・[517] ???: 3本の指で触れた

    ・[518] ???: 3本の指で触れていたときに、指を1本放した

    ・[773] ???: 4本の指で触れた

    ・[774] ???: 4本の指で触れていたときに、指を1本放した

    ・[1029] ???: 5本の指で触れた

    ・[1030] ???: 5本の指で触れていたときに、指を1本放した

    ・[1285] ???: 6本の指で触れた

    ・[1541] ???: 7本の指で触れた

    ・[1797] ???: 8本の指で触れた

    ・[2053] ???: 9本の指で触れた

    ・[2309] ???: 10本の指で触れた

    など

恐らく、メインに利用するのは、このような値であろうと思われる。
基本的な使い方はgoogleのページに記載されているので、そちらを確認してもらった方が確実とは思う。

(Google Developersはこちら

---
【更新履歴】
180527:初期作成
180602:getActionの追記
180916:クラス図追加

基本からしっかり身につくAndroidアプリ開発入門 Android Studio 3.x対応 [ 森 洋之 ]

価格:2,970円
(2018/9/16 17:17時点)
感想(1件)


ロリポップ!レンタルサーバー!はあなたの「やってみたい!」を応援します!

ロリポップ!なら、ホームページ、ブログ、ネットショップ…

これらが今すぐ、そして簡単にできちゃう!

マニュアルやライブチャットを完備しているので、ホームページ初心者でも安心。

これだけついてるのに月額100円(税抜)〜ととってもお得。

もちろん無料のお試し期間も10日間あるので安心ですね。


▼ロリポップ!レンタルサーバーはこちら
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/7705778
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索
<< 2022年06月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
最新記事
タグクラウド
カテゴリーアーカイブ
日別アーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。