忍者ブログ

アンドロイドのあれこれ

Begin with ActionBar
去年のひとりAndroid Advent CalendarではAndroidアプリのデフォルトタイトルバーの代わりにレイアウトでタイトルを作るような記事を書きましたが、API level 11から追加されたActionBarならそんな必要はありません(端末のOSがAndroid 3.x以上)

Action Barについて
http://developer.android.com/guide/topics/ui/actionbar.html

今では普通にEclipse(ADTインストール済)から作成されたAndroidのプロジェクトはAction Barがすでに対応されています。
Action Barにアイコンやメニューアイテムなどを追加することもできます。

・AndroidManifest.xmlにThemeを指定して対応する
....
<uses-sdk
android:targetSdkVersion="11" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/android:Theme.Holo" >
....
ActionBar
themeにTheme.Holoを指定します。またはバーション分けてstyle指定する書き方もあります
AndroidManifest.xml
....
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >


res/values-v11/styles.xml

<resources>
<style name="AppThem" parent="android:Theme.Holo.Light">
</style>
</resources>
ActionBar

・ActionBarを非表示に
リソースで指定する方法
...
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.NoActionBar" >
...


Activeのソースで指定する方法
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ActionBar actionBar = getActionBar();
actionBar.hide();
}
...


・ActionBarにメニューを追加
MainActivity.java
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
return true;
}
}

res/menu/activity_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:title="@string/menu_settings"
android:showAsAction="never"
/>
</menu>
ActionBar

showAsActionにifRoomで指定してアイコン表示する

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:icon="@drawable/ic_menu_info_details"
android:title="@string/menu_settings"
android:showAsAction="ifRoom"
/>
</menu>
ActionBar

showAsAction="ifRoom|withText"でアイコンとテキストを表示させる
ActionBar

メニューのリソースについてはここで参考できます。
http://developer.android.com/guide/topics/resources/menu-resource.html
COMMENT
NAME
TITLE
MAIL (非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS (コメント編集に必須です)
SECRET
管理人のみ閲覧できます
 
PR
© Android Advent
powered by 忍者ツールズ / 忍者ブログ / [PR]