Androidアプリから外部ブラウザに連携するときのsnippet要点だけ
すぐ忘れるのでメモ書き。要するにintentを使う。
すぐ忘れるのでメモ書き。要するにintentを使う。
AndroidのUI制作で、LinearLayoutを使って画面の横幅のちょうど2等分にしたいときがあります。このようなときは、LinearLayoutされているパーツ(ボタンとか)にたいして”android:layout_weight”プロパティを設定します。これの使い方のちょっとしたコツのメモ。
どうやら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…
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:…
むしゃくしゃしたのでAndroidアプリレビューサイト・マーケットサイトを書き出してみた。後悔はしていないが網羅もできていないと思う。とりあえず国内、順不同。botがAndroid Marketをクロールするみたいのは除外。間違いや古い情報などあればコメント欄とかで指摘してください。
Android Bazaar and Conference Summer 2011というAndroidのイベントに参加してきました。2011年7月17日@早稲田大学。 細かいことは置いておいて、気付いたことの要点だけ書く。聞いたセッションは以下。 主にDeNA、GREE、CyberAgentのセッションを聞いてきて、DeNAは2セッションあってどちらもngCore関係(2つ聞いたんだけど、ほとんど内容同じだった。)、GREEはGREE Platform、CyberAgentは自社の開発環境や体制についての話。
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 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.zip 2.ウィジェット ウィジェットもサイズに合わせて色々とテンプレが用意されてました。 http://developer.android.com/intl/ja/guide/practices/ui_guidelines/widget_design.html 4x1_Widget_Frame_Portrait.psd http://developer.android.com/images/widget_design/4x1_Widget_Frame_Portrait.psd 3x3_Widget_Frame_Portrait.psd http://developer.android.com/images/widget_design/3x3_Widget_Frame_Portrait.psd 2x2_Widget_Frame_Portrait.psd http://developer.android.com/images/widget_design/2x2_Widget_Frame_Portrait.psd 4x1_Widget_Frame_Landscape.psd http://developer.android.com/images/widget_design/4x1_Widget_Frame_Landscape.psd…
Android 2.2 “Froyo” からandroidmanifest.xmlで設定することでSDカードへのインストール、移動が可能になった デフォルト設定は「端末のみ可」なので注意 <manifest>の要素にandroid:installLocationを指定する。 auto:通常端末内。端末容量が足りないときにSDカードへ。端末とSDカード間で移動可能 internalOnly:端末内のみインストール可。android:installLocationを設定しないときのデフォルト値 preferInternal:SDカードに優先的にインストール。SDカードの容量が足りないときに端末インストール。事後インストール可。 アプリがSDカードにあるときも各種データは端末内。 <追記> つまり、アプリ側が対応してないと、SDカードに移動することは無理ってことですね。rootedな環境とかは知らない。
Intent search = new Intent(Intent.ACTION_WEB_SEARCH); search.putExtra(SearchManager.QUERY, “検索文字列”); startActivity(search); こんな感じでいけるみたい。外部のアプリが立ち上がって検索実行できる。 情報元:http://mobile.tutsplus.com/tutorials/android/launch-android-browser/