アニメーションは、タイマーとスレッドを使って定期的に描画する方法がある
1.JavaのTimerクラス+スレッドを使用する方法と、
2.android.os.Handlerクラスのタイマを使用する方法がある
JavaのTimerクラスとスレッドを使用する例
http://www.hakkaku.net/articles/20090206-341
android.os.Handlerのタイマクラスを使用して繰り返しタイマを呼び出す例
http://www.hakkaku.net/articles/20090212-348
主観だが、後者のほうがロジックが見やすい
< >とは何か?
private ArrayList<Monster> monsters;
< >内がクラス名で、< >内のクラスのArrayListを作成していることを表す。
他にも、LinkedListや、HashMapで使われる記述法
http://www.javadrive.jp/start/
再描画は、(クラス名).invalidate(); で再描画を促すべきで、
直接、onDrawを呼び出すべきではない
画面サイズが変更されたときに呼び出されるメソッドは onSizeChanged
⇒Androidの本体を横にしたときに呼ばれる
各種イベント
onCreate() .. 初めて作成されるとき
onStart() .. ユーザーから見えるようになる直前
onRestart() .. 停止した後、それをもう一度開始する直前
onResume() .. ユーザーからの入力が行われるようになったとき
onPause() .. 別のアクティビティを開始しようとしているとき
onStop() .. ユーザーから見えなくなったとき
onDestroy() .. 破棄される前
http://developer.android.com/intl/ja/guide/topics/fundamentals.html
の中段の図も参照
メニューボタンが押されたときに呼び出されるメソッドはonOptionsItemSelected
AlertDialogは、SDK1.5になって使い方が変わった
http://www.hakkaku.net/articles/20090629-471
こちらの、AlertDialogは動作確認済み。
古いソースで動かないものはこちらでチェック
Android の Spinner は、コンボボックスにあたるコンポーネント
(何かを回転させるものを想像してしまうが)
実機の画面キャプチャについて
iPhone では、ホームボタンを押しながら本体上部の電源ボタンを押すだけで
キャプチャが撮れたが、Android では、今のところ、
実機だけで画面キャプチャを撮ることはできない。
⇒今は、パソコンと Android を接続して、PCからキャプチャを撮るしかない
http://www.hakkaku.net/articles/20090723-535 ←やり方
docomo HT-03AとUSBケーブルをつないでも、
Dalvik Debug Monitorが実機を認識しない問題について
USB大容量記憶装置として認識されてしまい、
正しいUSBドライバがインストールされないことがあるとのこと
http://www.hakkaku.net/articles/20090723-535
HTC Asiaというドライバで認識させる方法もあるが、
HT-03Aに付属するUSBケーブルでないと認識されないことがあるという情報もあり
実機をデバッグモードにする方法
1.[home]ボタンを押してホーム画面に戻る
2.[menu]ボタンを押して、ついで、[設定]をタップする
3.[アプリケーション > 開発]をタップ
4.[USBデバッグ]をチェック状態にする
http://www.hakkaku.net/articles/20090723-535
(iPhoneでいうところの)デバッグモードでの転送とリリースモードでの転送法
http://www.hakkaku.net/articles/20090723-535
の最下段に説明あり
setContentViewに指定するもの
setContentViewには、Layoutを指定することが多いが、
ゲームなどでは、直接ViewをsetContentViewに指定することがある。
http://www.hakkaku.net/articles/20090727-489
ButtonもViewクラスとして受けることが可能
ButtonもViewを継承しているため、
public void onClick(View v) {
if (v == btn) {
txt.setText("Hello, World!");
}
}
のような記述が可能
Bitmapクラスを用いると、SDカードに画像を保存することが可能
http://www.hakkaku.net/articles/20090831-564
シミュレータで画面回転を試すには、[CTRL]-[F12]を押す
画面を横にしても画面が変わらないようにする方法
AndroidManifest.xmlを編集して属性を変更すればよい
manifest/application/activity の属性、android:screenOrientation を
"portrait" … 縦画面で固定
"landscape" … 横画面で固定
"unspecified" … デバイス任せ
SDカードの確認処理は
Environment.getExternalStorageState(); によってチェック可能
Log.v( "タグ", "メッセージ" );
でLogCatのタグとメッセージの欄に表示できるが、
どちらも、任意の文字列だが、日本語には対応していない。
Android Market http://www.android.com/market/
iPhoneのApp Storeに相当するもの
Android Market に登録するのに躊躇する点
それは、開発者登録。2009年8月現在、初回登録料が 25ドル必要。
しかし、iPhone の AppStore では、年会費が 99ドルで、
Windows Marketplace でも、年間 99ドルが必要。
(しかも、Windows Marketplace では、アプリケーション1本ごとに、
99ドルを支払う必要あり)
これを見ると、Android Market は、他社よりも良心的。
開発者登録の方法
http://www.adakoda.com/android/000100.html
要約すると、以下の通り
(1)開発者登録サイト「 http://market.android.com/publish/ 」へアクセス
(2)Googleアカウントでログイン
(3)開発者名やメールアドレス、Webサイトなどを登録
(4)Google Checkoutで25$を支払う
Android developers - 公開の準備
http://developer.android.com/intl/ja/guide/publishing/preparing.html
要約すると、以下の通り
・テストをしっかりする
・エンドユーザーライセンスを検討する
・ログ出力など、デバッグ機能を無効にする
ランチャー用アイコンは48x48の透過PNG
アプリケーションへの署名
費用がかかるしっかりとした証明機関に登録しておく必要はなく、
自己署名(勝手に作ったデジタル署名)でも問題ない。
Eclipseからデジタル署名を行う方法
http://www.hakkaku.net/articles/20090907-580
※バージョンアップを行う際には、AndroidManifest.xml で
バージョン番号で違う番号を設定しておかないと、
Android にインストールできないようになってるので、注意。
既に、デバッグ版がインストールされている場合は、
Android Marketから新たにインストールすることはできないので、
アプリケーションをアンインストールしてからインストールする
ボタンのラベルや各種メッセージなどを国際化する場合には、
リソースXMLを編集した上で、R.string.xxx のようなリソースIDを
指定することで実現。
例)
・values\strings.xml に <string name="label_ok">OK</string>
・values-ja\strings.xml に <string name="label_ok">おっけー</string>
アラートダイアログは、OKだけでなく、YES/NOやYES/NO/CANCEL、
リスト形式やラジオボタン、チェックボックスやプログレスバーダイアログ、
カスタムダイアログなども作成可能
http://www.hakkaku.net/articles/20090924-581