世界を目指せ!Androidアプリ開発入門

第6回 ユーザインターフェースの使い方:その1

この記事を読むのに必要な時間:およそ 3.5 分

アプリアイコンの設定

次に,アプリアイコンを設定します。

アイコンは,PNG形式,48×48pxで作成します。ファイル名をicon.pngとして,プロジェクト内の「res/drawable」以下に保存します。⁠res/drawable」には,アイコンファイルの他に,アプリ内で使用する画像ファイルを格納します。

画像リソースはドラッグ&ドロップで登録することができる。

画像

では,アイコンの設定を行います。

プロジェクト内の「AndroidManifest.xml」をダブルクリックで開きます。

画面下の[Application]タブをクリックして,⁠Application Attributes][Icon]で,先ほど作成したアイコンを指定します。⁠Browse...]をクリックすると,ダイアログにres/drawable以下にある画像ファイルが一覧表示されるので「icon」を選択します。

「icon」を選択

画像

次に,タイトルバーのアプリアイコンを表示します。

onCreateに,以下をコードを記述することで,タイトルバーの左側に指定したアイコンを表示できます。

getWindow().requestFeature(Window.FEATURE_LEFT_ICON);
setContentView(R.layout.skeleton_activity);
getWindow().setFeatureDrawableResource( Window.FEATURE_LEFT_ICON, R.drawable.icon );

コードを順に見ていきます。

getWindow().requestFeatureの第一引数で,タイトルバーの左側にアイコンを表示する設定を行います。次に,setContentViewを呼び出し,最後に,getWindow().setFeatureDrawableResourceの第二引数で,タイトルバーに表示するアイコンのリソースを指定します。

コードを見て,getWindow()から始まる呼び出しは,まとめて書けないの?と思った方もいらっしゃると思います。これには理由があり、

  • getWindow().requestFeature
  • →setContentView
  • →getWindow().setFeatureDrawableResource

の順で呼び出さないと起動時にアプリが異常終了してしまいます。知らないとハマるポイントですが,少し注意すれば良い話なので,まじないのような物と考えてください。

タイトルの左側にアイコンが表示されているところに注目。

画像

著者プロフィール

傍島康雄(そばじまやすお)

5月30日生まれ。

モバイルデバイスが大好物。それで動くアプリの開発に喜びを感じている。スマートフォン前夜のWindows Mobile,PalmOSのアプリに情熱を傾けていたが,最近は停滞気味でコードを書くよりも文章を書く機会が多くなっており,文章を書くのも,プログラミングと同じくらい奥深い作業だと感じている。

ブログ:http://yasuos.com/blog/

コメント

  • Re:

    #2さんのコメント助かりました。
    ありがとうございます。

    Commented : #8  onPrepareOptionsMenu (2012/04/19, 15:42)

  • 直りました

    SkeletonActivity.java に onOptionsItemSelected を実装した時点で #6 の事象が起きていたのですが、SkeletonSubActivity.java にも実装したところ、エラーはなくなりました。

    R.java にも menu_goto の id クラスが追加されました。

    Commented : #7  #6です (2012/03/26, 10:56)

  • R.javaにidが反映されません

    mainmenu.xml、submenu.xml に、それぞれ
    @+id/menu_goto
    を定義したのですが、
    R.javaの id クラスになぜかそれらが反映されません。

    それにより、ソース中の
    「case R.id.menu_goto:」の箇所で
    怒られます。

    なお、コンソール上に
    W/ResourceType( 1124): Bad XML block: header size 85 or total size 0 is larger than data size 0
    W/ResourceType( 1124): Bad XML block: header size 85 or total size 0 is larger than data size 0
    C:\eclipse\workspace\SkeletonApp\res\menu\mainmenu.xml:3: エラー: エラー: No resource found that matches the given name (at 'title' with value '@string/menu_gotosub').
    C:\eclipse\workspace\SkeletonApp\res\menu\submenu.xml:3: エラー: エラー: No resource found that matches the given name (at 'title' with value '@string/menu_gotosub').
    が表示されています。

    解消方法についてご教授お願いします。m(_ _)m

    Commented : #6  超初心者 (2012/03/23, 17:16)

  • 分かりませんでした

    #1#2さんのコメントを見るまで、何がなんだか分かりませんでした。
    書いてある通りにやっても動かないので、だめもとで、環境の再インストールを2回もしてしまいました。
    本文の修正は手間がかかるのかもしれませんが、下のコメントを参照して下さい程度は書いておいてほしいです。

    Commented : #5  初心者 (2011/10/31, 17:47)

  • 同感

    このサイトをとても参考にさせて頂いています。
    しかし、ソース内に前回とのつながりが一部なくなっているのが残念でした。
    下記コメントの「NULL避け」「menuについても」

    前回から難易度が上がった為このコメント欄を見るまで時間がかかってしまいました。

    今後のアプリ制作初心者の方の為にも訂正をお願い致します!!

    Commented : #4  アプリ制作初心者 (2011/07/25, 01:05)

1ページ(1/2)    

コメントの記入