ナナエフ

同人ゲームサークル『7-FIELD』制作ブログ  -ゲーム制作やイベント参加などの活動情報 + 雑記-

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Android アプリ制作、画面タップ周りのコーディングメモ

tetsuwoです。 【 twitter

相変わらず、スローペースで Android アプリ開発を進めてます。


今回はディスプレイを触れた時の判定や、取得できる情報のメモ。

意外にも圧力まで認識できるのですね。これは使われてる既存アプリを知りませんが何かに使えそう。
 
 
ボタンのタップと、ディスプレイのタップが分かれてるのが厄介

分かってしまえば何ということもない処理ですが、何故残そうと思ったのかと言いますと。


ディスプレイの特定部分を押した時に、何らかの挙動を作りたい、と思い

「AndroidStudio」「タップ」といったキーワードを設定して検索してみると・・・


シンプルに「画面に触れた」ことを認識する処理が全然ヒットせず!

(ディスプレイ上にボタンが作られている前提で)OKボタン、キャンセルボタンなどが押された場合の解説が優先的に出てしまいます!



onTouchEvent」という、触れた時に発生するイベントが分かってしまえば

イベント名で検索すれば済む話ですが、そこに行き着くまで少し時間が掛かってしまったので残そうとした次第です。

・・・こんな事を調べるのに手間取るあたり、検索能力の底が知れますね。
 
 
という訳で、onTouchEvent イベントが発生します

前述の通り、作成しているクラスに「onTouchEvent」イベントを設ければそれだけでOK。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

// タップ関連処理時に発生するイベント
public boolean onTouchEvent(MotionEvent me) {

// タップしたときの処理色々

}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


となります。

MotionEvent クラスの 完全限定名 は「android.view.MotionEvent」。始めに import してしまいましょう。


で、肝心のタップしたときの処理色々・・・の部分ですが、イベントの中で「me.getAction()」を用いて判定します。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

// タップし続けているかの判定フラグ
boolean tap_flg = false;

// タップ持続時間の演算用変数
long tap_time_start = 0, tap_time_now = 0;

// タップ関連処理時に発生するイベント
public boolean onTouchEvent(MotionEvent me) {

// タップの状態を判定
switch (me.getAction()) {

// 画面に触れた瞬間
case MotionEvent.ACTION_DOWN:

// タップフラグを立て、タップした時間(アプリ起動からのミリ秒数、long型)を保持
tap_flg = true;
tap_time_start = me.getEventTime();

break;


// 画面から離れた瞬間
case MotionEvent.ACTION_UP:

tap_flg = false;
tap_time_start = 0;
break;


// 触れたと同時に離れた瞬間(極短時間のタップ?)
case MotionEvent.ACTION_CANCEL:

tap_flg = false;
tap_time_start = 0;
break;
}

// タップし続けていたら・・・
if (tap_flg == true) {

// タップ位置(座標)が分かる! ※int型へのキャストが必要
int x = (int) me.getX();
int y = (int) me.getY();

// タップ持続時間を算出できる!
tap_time_now = me.getEventTime();
long tap_time = tap_time_now - tap_time_start;

// タップの圧力(float型)も取得できる!
float = me.getPressure();
}
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



色々と省略した書き方ですが、当面これだけでタップ関連の処理は十分作れそう。

他にも出来ることが多そうなので、MotionEvent クラスについてしっかり知りたい方は公式マニュアルをどうぞ。





それにしても、html でコード書くのが面倒ぎる・・・。何か工夫しないと。
 
 
宣伝

舞台は企業都市-エリアシティー-。特殊な権限を巡って争われる

イミテーションゲーム<ニセモノ探し>を参加者6人の視点から描いた群像劇型サウンドノベル。


jacket_05_20150318b.jpg

当サークル第3弾作品「露草ユーフォリア」DL販売開始です。

体験版も公開しておりますので、目に止まりましたらお試しあれ。


第2弾「薄鈍アドベント」もよろしくお願いします。
 
スポンサーサイト
  1. 2015/07/06(月) 07:00:00|
  2. 雑記
  3. | トラックバック:0

トラックバック

トラックバック URL
http://7fblog.blog.fc2.com/tb.php/537-5cdffe11
この記事にトラックバックする(FC2ブログユーザー)

カウンター

プロフィール

akinasi, tetsuwo

Author:akinasi, tetsuwo
FC2ブログへようこそ!

検索フォーム

カレンダー

09 | 2017/10 | 11
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 31 - - - -

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

告知 (63)
制作 (88)
ソフト紹介 (19)
素材紹介 (10)
言外 (7)
雑記 (361)
ナナエ (29)

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。