DisplayMetricsクラスの代表的フィールド
float density
画面の論理的密度
int densityDpi
インチおたりのドット数で表した画面密度
int heightPixels
ピクセル値で表した画面の絶対的高さ
int widthPixels
ピクセル値で表した画面の絶対的幅
float xdpi
x軸の1インチあたりの物理的なピクセル数
float ydpi
y軸の1インチあたりの物理的なピクセル数
--
から送られてきた高速メモ帳
スポンサーサイト
DisplayMetricsクラスの代表的フィールド
float density
画面の論理的密度
int densityDpi
インチおたりのドット数で表した画面密度
int heightPixels
ピクセル値で表した画面の絶対的高さ
int widthPixels
ピクセル値で表した画面の絶対的幅
float xdpi
x軸の1インチあたりの物理的なピクセル数
float ydpi
y軸の1インチあたりの物理的なピクセル数
画面情報の取得
onScroll()の強距離の単位がピクセルであるように
ScaleGestureDetectorで取得する2点間の距離もピクセルで返ってくる
これをミリメートルへ変換するには
ピクセル / 解像度 * 25.4
の計算式を使う
解像度は、インチあたりのピクセル数
これに25.4をかけることで
ミリメートル換算できる
解像度は、Android端末ごとに異なるため
画面の大きさ
解像度
を知るには
DisplayMetricsクラスを使う
onFling() onScroll()の引数
まず、onFling()
構文は
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
引数の解説
e1
ダウン時のタッチイベント
e2
フリック時のタッチイベント
velocityX
x軸の速度
単位は、ピクセル/秒
velocityY
y軸の速度
単位は、ピクセル/秒
次に、onScroll()
構文は
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
引数の解説
e1
ダウン時のタッチイベント
e2
スクロール時のタッチイベント
distanceX
x軸のスクロール時の距離
単位はピクセル
distanceY
y軸のスクロール時の距離
単位はピクセル
フリックやスクロールの検知
ボタンのタップやダウン、アップなどのタッチ操作は
onClickイベントや
onTouchイベントで処理できるけど
複雑な操作になるジェスチャーは
GestureDetectorクラスや
ScaleGestureDetectorクラスを使い検出する
ScaleGestureDetectorクラスは
ピンチイン
ピンチアウト
を取得できる
GestureDetectorクラスはかなり多くの
ジェスチャーを検出できる
先に、ピンチアウトとピンチインについて解説
スマホのタッチパネルは、複数の指で
画面にタッチするマルチタッチをサポートしている
2本指でタッチして
つまむように間隔を狭めることを
ピンチイン
逆に2本の指を開いて
間隔を広げる動作をピンチアウトという
そして、以下がGestureDetectorで検知できるイベント
ダウンは、onDown()
押したとき
インターフェースは,
OnGestureListener
プレスは、onShowPress()
おしたとき、ただし、すぐに動かすと検知されない
インターフェースは、
OnGestureListener
長押しは、onLongPress()
これは、長押ししたとき
インターフェースは、
OnGestureListener
フリックは、onFling()
スワイプ、つまり指を触れたまま
任意方向へすべらした状態から
指を弾いて離す
インターフェースは、
OnGestureListener
スクロールは、onScroll()
画面にタッチしたままスライド
インターフェースは、
OnGestureListener
アップは、onSingleTapUp()
画面タッチからアップ操作を短く
インターフェースは、
OnGestureListener
シングルタップは、onSingleTapConfirmed()
ダブルタップ時には呼び出されない
インターフェースは、
OnDoubleTapListener
ダブルタップは、onDoubleTap()
これは、二回押す
インターフェースは、
OnDoubleTapListener
ダブルタップ時のイベントは、
onDoubleTapEvent()
ダブルタップ中にイベントダウン、移動、アップが起こると通知される
インターフェースは、
OnDoubleTapListener