ActionBarにアイコンを追加してみた

ちょっとプログラムをする時間などもできてきたので、本が出てからかなり時間は経ってますが、怪しいAndroidアプリ開発術に掲載しているPassGenの画面構成を変えて、HoneyComb以上のライブラリで使われているActionBarにアイコンを表示するようにしてみました。

こんな感じ

device-2012-04-24-102006

保存と閉じるのボタンを画面上のバーに表示させています。なんとなく最新版のOSに対応したって気になる。

ドキュメントとしては、

Android Developers:ActionBar

ソフトウェア技術ドキュメント:6.3アクションバー

辺りを見てもらえばいいかと思いますが、それだけじゃなんなので、対応方法など。

PassGenでは、メニューの構築を次のように行ってます。

public boolean onCreateOptionsMenu (Menu menu) {
    /*
     *  メニュー内容を XML で登録する
     */
    MenuInflater lMi = new MenuInflater(getApplicationContext());
    lMi.inflate(R.menu.optionsmenu, menu);

    return true;
}

XMLにMenuItemを登録して、それを元にしてメニューを構築しています。ドキュメント見るともろに同じような記載があるわけですが、この場合は、XMLファイルの<item>の中にandroid:showAsAction="ifRoom"を追加することで、適用されます。

付録CD-ROMとか持っている人は、optionsmenu.xmlのitemにandroid:showAsAction="ifRoom"を追加して次のように設定すれば、できます。

<item android:id="@+id/optionsitem01" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:title="@string/menuitem_message_close"  android:showAsAction="ifRoom" ></item>

 

さて、ここで問題が1つ発生するわけですけど、サンプルはすべて1.6のSDK(SDKバージョン4)を基準に書かれています。

しかし、このActionBarが適用されるのはSDKバージョン11以降。どうすればいいのかってところですが、手軽にSDKバージョンをあげるには、次のようにします。

EclipseでProjectExplorerの該当プロジェクトのところで右クリック。

prop

Properties(日本語版だとプロパティだったか)をクリックして、プロジェクトのプロパティから左のリストにあるAndroidを選択。そうするとライブラリの選択画面が出てきます。

snap255

ここのチェックを最新版にします。OKを押せばライブラリのバージョンアップは終わり。

次にManifestファイルを開いて、AndroidManifest.xmlタブをクリックしたら、uses-sdkを探します。ここを次のように書き換えましょう。

<uses-sdk android:minSdkVersion="[必要最低限のバージョン番号]" android:targetSdkVersion="[設定で選んだバージョン番号]" />

例えば、PassGenの場合は最低限が1.6で、読み込ませたライブラリは4.0.3のものですから、次のようになります。

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />

これで、ActionBarが使える環境ならば、メニューではなくてバーにアイコンが追加されて、新しいUIっぽく見えます。

 

ActionBarが使えるようになるとGoogle+アプリとかGmailみたいに左右フリックで切り替えるようなこともできるようになるので、次はそれで左右フリックで保存画面にいけるようにしていきたいと思います。

広告

About sato_c

小学生の頃にインベーダーゲームやPC-8001やApple][といったものを知ってしまい、それ以降ずーっとゲーム好き。でも、あんまりうまくはありません。 仕事は当初はゲーム関係のプログラムやサウンドをやっていましたが、WEB関係を通ったあと、遊技機関係のプログラムやサウンドをやっています。あまり節操がないのか。 現在はJavaですてきなコードを書けるように勉強中。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。