如何在操作栏上设置特定项目的样式

时间:2013-08-13 21:24:21

标签: android android-layout android-actionbar

我有一个包含3个项目的操作栏,并希望以不同的方式设置它们(见下图)。问题是当我按如下方式设置样式时:

<style name="MyTheme2" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
    <item name="android:actionMenuTextColor">#DAF9FE</item>
    <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
</style>

<style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/ab_solid</item>
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#DAF9FE</item>
    <item name="android:textSize">22sp</item>
</style>

<style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textSize">18sp</item>
</style>

它设置具有该主题的所有3个项目。基本上我想在我的操作栏上只添加一个背景图像,而不是将它应用到所有3个。

item name =“android:selectableItemBackground”&gt; @ drawable / btn_ab_quiz_normal

有没有办法在不创建自定义视图的情况下执行此操作?

我还尝试过将测试按钮图像作为图像的一部分并设置Text =“”,但图标显示很小,因为操作栏图标是特定维度。

  • 下图是我希望我的操作栏看起来像。

The action bar that I want

1 个答案:

答案 0 :(得分:0)

你可以用这个改变颜色:

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR"));

menu.xml中,您可以向ActionBar添加图标。像这样:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"/>
    <item android:id="@+id/action_compose"
          android:icon="@drawable/ic_action_compose"
          android:title="@string/action_compose" />
</menu>

main.xml连接MainActivity。使用此代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return super.onCreateOptionsMenu(menu);
}

如果你想要那个小按钮,我建议你打开Photoshop并创建新项目。

我希望它能帮助......;)