現在地描画の手順
現在地を描画できるように
MyLocationOverlayクラスの
インスタンス作成
onProviderEnabled(LocationManager.GPS_PROVIDER)
でGPS有効化
enableMyLocation()
で自分ポイントの追跡有効化
runOnFirstFix()で
最初に位置情報が確定したときに
実行するコード指定
getMyLocation()で
自分ポイント取得
animateTo()で
指定座標に移動
MapViewに
Overlayを追加し
MapView.invalidate()で再描画
月別: 2012年9月
タッチイベントの用語解説
タッチイベントの用語解説
タップ
画面を軽く叩く
別名、シングルタップ
ダブルタップ
タップを素早く2回行う
フリック
画面上を軽く払うように指を動かし
縦や横にページ移動
あと、ソフトウェアキーボードの
フリック入力にも使う
ピンチイン
画面を狭めるようにつまむ
縮小に使う
ピンチアウト
画面を広げるように二本指で操作
こっちは拡大に使う
マルチタッチ
同時に複数の個所にタッチ
Androidでよく使う単位
Androidでよく使う単位は
dp と sp
dpは
Destiny independent Pixels
spは
Scaled Pixel
なぜ、pxではないかというと
pxは画面の実際のピクセル数
つまりドット単位なので
端末により1インチあたりのピクセル数が違うと
実際に表示されるサイズも変わってしまうから
これに対して
dpなら
画面の表示密度から計算して求めるので
表示密度が違っても同じようなサイズを維持できる
spも同様に画面の表示密度で計算するけど
こちらは文字のフォントサイズの指定に使う
Androidでタブを使う方法
タブレイアウトを使うと
複数のタブにUI部品を配置できる
Androidでタブを使う方法は2つ
Activityを継承する方法
と
TabActivityの継承
まず、Activityの継承だと
タブごとに別々のアクティビティを割り当てる
TabActivityの継承の場合
同じアクティビティで
タブごとにビューを切り替えられる
タブレイアウト使用時の注意点
タブレイアウト使用時の注意点
レイアウトのルートノードはTabHost
であること
TabHostのidは
@android:id/tabhost
にする
Tabhostは
タブを表示するためのTabWidget
と
コンテンツを表示するためのFrameLayoutを含む
TabWidgetのidは
@android:id/tabs
にすること
FrameLayoutのidは
@android:id/tabcontent
にすること
Androidアプリでセンサー使用
センサーを使うには
getSystemService()で
SensorManagerを取得
SensorManagerの
getSensorList()に
TYPE_ACCELEROMETER
加速度センサーを指定し、リストを得る
このリストの中から
list.get(0)
で加速度センサーを取得
あえて、指定しているのは
機種により複数のセンサー搭載もあるから
onResume()
で
SensorEventListenerを登録
登録は
mSensorManager.registerListener()
onStop()
でイベントリスナーの登録解除
解除は
mSensorManager.uNregisterListener()
ちなみに、
SensorEventListenerを
implicationしたら
以下のメソッドも実装すること
public void onAccuracyChanged(Sensor sensor,int accuracy)
public void onSensorChanged(SensorEvent event)
onAccuracyChanged()
は
センサー搭載の精度が変化した時に、呼び出される
onSensorChanged()は
センサーの値が変化したら呼び出される
onSensorChanged()
の引数 event のvalues配列には各軸の値があり
values[0] がX軸
values[1] がY軸
values[3] がZ軸
になります
ちなみに、定数も定義されているので
X軸なら
SensorManager.DATA_X
Y軸なら
SensorManager.DATA_Y
Z軸なら
SensorManager.DATA_Z
加速度について
加速度についてのメモ
加速度は
一定時間ごとに速度がどれだけ増加するか
を表す割合のこと
単位時間あたりの速度の変化率のこと
一般的にはm/s
meter per second per second
という単位で表現されるけど
加速度は重力の影響を受ける
重力と加速度による慣性力を区別することはできない
一般的だと
バスや電車で
発車や停車のとき、加速度による慣性力を体験してます
ちなみに、地球の重力により
物体が上から下へ落ちるときの加速度は
重力加速度といって
Gで表されます
よく、ラノベとかで何Gとかでたりします
重力加速度は
一般では 9.8m/s
だけと
厳密には緯度により変わるため
日本の場合、北海道と沖縄では
微妙に異なります
北海道のほうが大きく
沖縄の方が小さくなります
重力加速度は
物体を静止状態から自然落下させたときに
1秒後の落下速度が9.8m/sになること
加速度はX Y Zの3軸のベクトルで取得可能
ちなみに、加速度はAndroidアプリ作成に使います
HTC Jのサンプリングレート
Androidで音感知のアプリ作成で
サンプリングレートの設定を間違えたらエラーになりました
最初に設定したのは500にしてしまったのが原因でした
今回、HTC Jでは
サンプリングレートは
Xperia acroと同じく
44100Hzでした
数値が小さいと
アプリ起動しても予期せぬエラーがでましたとなり強制終了してしまいます
サーフェイスビューについて
サーフェイスビュー
SurfaceViewクラスを使うと
UIスレッドから独立して描画を行える
通常のUIスレッドより高速描画できるので
ゲームやマルチメディアに向く
カメラ画像化のプレビューにも
SurfaceViewクラスが使われる
サンプリングレートについて
サンプリングレートとは
サンプリングレートはサンプリング周波数のことで
アナログ信号からデジタル信号への変換である(AD変換)
を
1秒間に何回行うかを示す数値で
単位はHz
ちなみに、44100Hz
44.1kHzは
CDに使われる