すぐ忘れるのでメモ書き。要するにintentを使う。
Category: android
-

Androidレイアウトの要点だけ: LinearLayoutでパーツを均等に配置したい
AndroidのUI制作で、LinearLayoutを使って画面の横幅のちょうど2等分にしたいときがあります。このようなときは、LinearLayoutされているパーツ(ボタンとか)にたいして”android:layout_weight”プロパティを設定します。これの使い方のちょっとしたコツのメモ。
-
AndroidでLayoutからイベントリスナの設定方法の要点だけ
どうやらAndroid 1.6かららしいんだけど、Layoutファイルにandroid:onClickというプロパティを指定することができます。例えばOK/Cancelボタンを配置した場合は、以下みたいなLayoutファイルになります。<Button android:text=“@string/label_button_cancel” android:layout_height=“wrap_content”android:layout_width=“wrap_content”android:id=“@+id/cancelButton”android:onClick=“onCancelClicked”/><Button android:text=“@string/label_button_ok”android:layout_height=“wrap_content”android:layout_width=“wrap_content”android:id=“@+id/OKButton”android:onClick=“onOKClicked”/>
こういう記述のあるlayout.xmlファイルをActivityの中でsetContentView()してやると、OKまたはCancelボタンをタップしたときに、そのActivityの中にあるandroid:onClickに指定した名前のメソッドを読んでくれます。listenerの設定とかが必要ないので、非常に便利。
メソッドのシグネチャは、public void aHandler(View v)なので、上記の例だとそれぞれ
public void onOKClicked(View v) {Log.d(“DEBUG”, “ok clicked”);}public void onCancelClicked(View v) {Log.d(“DEBUG”, “cancel clicked”);}みたいなメソッドだけを記述しておいてやればOK。 -
AndEngineのはじめかたの要点だけ
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #144fae}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
span.s1 {text-decoration: underline}
span.s2 {color: #000000}
Android用の2Dゲームフレームワークみたいなものを探してて、iOS界隈だとcocos2dがメジャーなんだろうけど、cocod2dのAndroid版というのはプロジェクトが分裂してる上に、どうも更新が止まってるか、凄く遅いっぽい。色々調べてたらAndEngineというのが有望に見えたし類似と言って良いっぽいので、調べてみることにした。OpenFeintとの連携もOKみたい(調べてないけど)。とりあえずはAndEngineを始めるに有用なポインタを簡単に整理してみます。 -
Android アプリレビュー&マーケットサイトの要点だけ
むしゃくしゃしたのでAndroidアプリレビューサイト・マーケットサイトを書き出してみた。後悔はしていないが網羅もできていないと思う。とりあえず国内、順不同。botがAndroid Marketをクロールするみたいのは除外。間違いや古い情報などあればコメント欄とかで指摘してください。
-
Android Bazaar & Conference Summer 2011に行ってきた所感要点だけまとめ
Android Bazaar and Conference Summer 2011というAndroidのイベントに参加してきました。2011年7月17日@早稲田大学。
細かいことは置いておいて、気付いたことの要点だけ書く。聞いたセッションは以下。
主にDeNA、GREE、CyberAgentのセッションを聞いてきて、DeNAは2セッションあってどちらもngCore関係(2つ聞いたんだけど、ほとんど内容同じだった。)、GREEはGREE Platform、CyberAgentは自社の開発環境や体制についての話。 -
外部のActivityを明示的Intentで開始するやりかたの要点だけ
Androidアプリの開発で、パッケージ名およびActivity名が分かっているアプリを、自分のアプリから起動したい時がある。たとえばプリインストールのGoogle製アプリとか。
この場合も、自パッケージ内の明示的インテントと同様に起動することができる。具体的には以下みたいにする。
Intent i = new Intent();
i.setAction(Intent.ACTION_MAIN);
i.setClassName(“com.example.external.package”, “com.example.external.package.SomeActivity”);
//i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //外部Activityを自分のActivityスタックとは別に立てたいとき。
startActivity(i);注意点として、setClassName(String packageName, String ActivityName)するときに、ActivityName側もフルパッケージ名で指定する必要があること。これをしないとClassNotFoundExceptionになる。
あと、setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)しないと、例えば起動したアプリをHOMEボタンで終了した後にもう一回自分のアプリを立ち上げた時、自分のパッケージから起動したSomeActivityの方の画面が出てよくわからない事になる。これを避けるにはIntent.FLAG_ACTIVITY_NEW_TASKフラグを指定した状態でstartActivity()する。
このへんはTASKについて整理する必要がありそうだけど、別の機会にします。
-
Android Developerサイトにあるデザインテンプレートまとめ(PSD)
Android Developersサイトを見ていたら、色んなところにデザインテンプレートが落ちていたのでメモ。慣れるまではこれを下敷きにすれば、効果的にデザインが作れるのではないでしょうか。PSDで提供されてるので使いやすい。
1.アイコン
色んなアイコンテンプレート詰め合わせ。
http://developer.android.com/intl/ja/guide/practices/ui_guidelines/icon_design.htm
中身は以下のとおり
・ダイアログ
・ランチャー(HOME)
・リスト
・メニュー
・通知
・タブ
Icon Templates Pack for Android 2.3
http://developer.android.com/shareables/icon_templates-v2.3.zip2.ウィジェット
ウィジェットもサイズに合わせて色々とテンプレが用意されてました。
http://developer.android.com/intl/ja/guide/practices/ui_guidelines/widget_design.html4x1_Widget_Frame_Portrait.psd
http://developer.android.com/images/widget_design/4x1_Widget_Frame_Portrait.psd3x3_Widget_Frame_Portrait.psd
http://developer.android.com/images/widget_design/3x3_Widget_Frame_Portrait.psd2x2_Widget_Frame_Portrait.psd
http://developer.android.com/images/widget_design/2x2_Widget_Frame_Portrait.psd4x1_Widget_Frame_Landscape.psd
http://developer.android.com/images/widget_design/4x1_Widget_Frame_Landscape.psd3x3_Widget_Frame_Landscape.psd
http://developer.android.com/images/widget_design/3x3_Widget_Frame_Landscape.psd
2x2_Widget_Frame_Landscape.psd
http://developer.android.com/images/widget_design/2x2_Widget_Frame_Landscape.psd -
AndroidアプリをSDカードにインストール可能にする要点だけ
- Android 2.2 “Froyo” からandroidmanifest.xmlで設定することでSDカードへのインストール、移動が可能になった
- デフォルト設定は「端末のみ可」なので注意
- <manifest>の要素にandroid:installLocationを指定する。
- auto:通常端末内。端末容量が足りないときにSDカードへ。端末とSDカード間で移動可能
- internalOnly:端末内のみインストール可。android:installLocationを設定しないときのデフォルト値
- preferInternal:SDカードに優先的にインストール。SDカードの容量が足りないときに端末インストール。事後インストール可。
- アプリがSDカードにあるときも各種データは端末内。
<追記>
つまり、アプリ側が対応してないと、SDカードに移動することは無理ってことですね。rootedな環境とかは知らない。 -
AndroidアプリからWEB検索させるインテント要点だけ
- Intent search = new Intent(Intent.ACTION_WEB_SEARCH);
- search.putExtra(SearchManager.QUERY, “検索文字列”);
- startActivity(search);
こんな感じでいけるみたい。外部のアプリが立ち上がって検索実行できる。