Android
AndroidでCursorのデータを一覧表示する場合、CursorAdapterが使用されていました。 このとき、データの更新をViewに反映するということについてフレームワークがなにを提供しているのかがわかりづらかったので、メモとして整理しておきます。 MediaStoreの…
Androidでダイアログを表示するときに利用するのが、AlertDialogクラスです。 Webでダイアログの表示について書かれた記事の多くは、AlertDialog#show()を用いています。一方、本家のAndroid Developersでは、Activity#showDialog()を用いたサンプルコードが…
参考ページ New Tools For Managing Screen Sizes | Android Developers Blog Screen-size Buckets OS3.1までの方法。 buckets dp 具体的な機種 small 426dp × 320dp QVGA[320 * 240] + ldpi = 426*320dp normal 470dp × 320dp large 640dp × 480dp WVGA[800…
iPhoneのロック解除画面のようなボタンの作成を、Androidで試みました。 画像を用意する Androidのデフォルトテーマのボタンは上下左右に隙間があるので、隙間が無いボタンの画像を用意しました。なお、これらの画像はpixelmatorの体験版で自作しました。 通…
ボタンのデザインをする場合のために、デフォルトのボタンがどのように実装されているか調べます。 デフォルトのボタンは、Widget.Buttonというstyleが適用されている。(たぶん) Widget.Buttonスタイルの定義 android:backgroundにて、drawableのbtn_defau…
Serviceへのバインドには必ずAIDLが必要なのかと思ってたんですが、同一プロセス内であればAIDLは不要みたいです。勘違いしてました。 下記の記事を読んで知りました。 なお、このケースではサービスとクライアントが同じプロセスなので、AIDLを使わなくても…
IntentServiceを使って非同期処理を行う - Tech Booster 上記で紹介されているIntentServiceについて、どういうものなのか調べようと思ったら、HandlerThreadというものが内部的に使われていました。 気になる名前のクラスなので、こちらを先に押さえること…
「アカウントと同期の設定」みたいな画面をつくる 「アカウントと同期の設定」画面みたいな画面をつくるにはどうすればよいでしょう。 基本はPreferenceActivityだけど、フッター部分のボタンを追加するには工夫が必要そうです。 自作layoutにpreferenceを載…
イベント broadcast int EXTRA_WIFI_STATE NetworkInfo EXTRA_NETWORK_INFO WIFIをONにしています WifiManager.WIFI_STATE_CHANGED_ACTION="android.net.wifi.WIFI_STATE_CHANGED" WIFI_STATE_ENABLING ** WIFIをONにしました WifiManager.WIFI_STATE_CHANGE…
プロセスとアプリケーションとスレッドについての理解が非常にあいまいなため、整理してみます。 プロセスとアプリケーションのライフサイクルの関係 アプリケーション内のサービスやアクティビティが全部終了していても、プロセスは停止しない。 例えばアク…
メモ。 一度アプリを起動すると、他のアプリを起動してもプロセスは生きている。アプリをばんばん起動し続けると、あるタイミングでプロセスが終了される。 その際、LogCatには下記の出力。 03-31 00:15:36.450: INFO/ActivityManager(92): No longer want c…
HTC Desireで試した。 端末によって、異なる動作があるかもしれないので注意。 端末の設定 ディスプレイ>省電力を15秒にして、15秒放置するとスクリーンがOFFになるようにする。 ディスプレイの状態遷移 ・明るい画面(SCREEN_BRIGHT) ・キーボード(Homeボ…
自分は以前に、Androidくん折り紙のプロトタイプを作ったことがあったのですが、ツノを折りだすことに挫折していました。ORIGAMI ANDROID(展開図つき) - 理系のためのTIPS集しかし今日、偶然すごいものを見つけてしまいました。» Creare un origami Androi…
TelephonyManager.listen()の結果をユニットテストしようとしたのですが、うまくいきませんでした。試したことをメモしておきます。 listen()をオーバーライドしたTelephonyManagerのサブクラスを用意して、ContextのモックがgetSystemService()でそのサブク…
Testing | Android Developers Testing Overview | Android Developers Service Testing | Android Developers Serviceのユニットテストにはandroid.test.ServiceTestCaseというクラスが用意されている。 ServiceTestCase | Android Developers自分用にドキ…
ブロードキャストインテントアクションをハンドリングする方法と、TelephonyManagerにリスナーを登録する方法があります。 前者はプロセスが起動してなくてもハンドリングできるけど、後者はプロセスが起動している必要があるようです。 あわせて読みたい 相…
BroadcastReceiverのみのアプリの場合 インストールしてもDevicesビューにプロセスは表示されない。 ブロードキャストが送信されるとDevicesビューにプロセスが表示される。 ブロードキャストが終わってもDevicesビューにプロセスは残る。 Devicesビューでst…
Service | Android Developers Serviceの基本的な動きを確認してみます。まずログを吐くだけのサービスを用意します。プロセス名をsampleProcessにします。ここで設定したプロセス名はDeviceビューで確認できます。2011/1/22 追記 プロセス名を設定しない場…
Android Bazaar and Conference 2011 Winter 日時: 1/9(日) 10:00〜 場所:東京大学 本郷キャンパス Android Bazaar and Conference 2011 Winterに行ってきました。スタッフのみなさま、登壇者のみなさまおつかれさまでした。 全体的に熱気がすごく、Androi…
ユーザが電話をかけたときのインテントを受信してみます。 public static final String ACTION_NEW_OUTGOING_CALL Broadcast Action: An outgoing call is about to be placed. Intent | Android Developers AndroidManifest.xml <receiver android:name="ExBroadcastReceiver"> <intent-filter> </intent-filter></receiver>
任意のブロードキャストメソッド ( Context.sendBroadcast()、 Context.sendOrderedBroadcast()、Context.sendStickyBroadcast() などといった ) に渡されるインテントオブジェクトは、関与しているすべてのブロードキャストレシーバに配信されます。さまざ…
onCreateOptionsMenuの引数Menu#add()によりオプションを追加できます。 @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, OPTION_ITEM_ADD, Menu.NONE, "add") .setIcon(android.R.drawable.ic_menu_add); menu.add(Menu.NO…
ListViewを扱いやすくするためにListActivityというものが用意されています。 ListActivity#getListView() /** * Get the activity's list view widget. */ public ListView getListView() { ensureList(); return mList; } private void ensureList() { if …
連絡先を表示したい場合 こうすると startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people"))); ちゃんとDialtactsContactsEntryActivityがcmpに指定される。 12-08 20:22:51.547: INFO/ActivityManager(60): Starting activ…
Activity public class SandboxActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListA…
AndroidDev.jpに行ってきました。とても実践的な内容で大変参考になりました。みなさまありがとうございました。会場はECナビさんの会議室でした。会場のフロア入り口が、オフィス離れしたおしゃれなエントランスだったのでたじろぎました。 箇条書きで、メ…
日経BPさん主催のAndroid Usablity Seminar 2010に行ってきました。貴重な話が満載で、とてもためになりました。みなさまありがとうございました。 会場は満員御礼でした。講演のあいまにはBGMが流れて、いい雰囲気でした。ペットボトルで水を配布していて、…
パッケージ フォルダ名 android.drm.* drm, media android.security.* keystore android.graphics.*android.renderscript.* graphics android.location.* location android.media.* media android.opengl.* opengl android.sax.* sax android.telephony.* te…
ORIGAMI Dukeに続き、AndroidのマスコットキャラクターDROIDくんを折り紙で折ってみました。不切正方形1枚です。 目とツノはこの設計から折りだすのは難しそうです… やっつけ展開図 かざぐるまの基本形から手足を折りだしています。
Androidアプリでスプラッシュ画面を表示させる方法 - MIRAI THE FUTURE Androidでスプラッシュ画面を表示する方法を調べていたらHandlerを使った処理が出てきたので、ついでに非同期処理を調べてみました。 別スレッドから画面描画はできない 別スレッドから…