2013-08-13 3 views
0

У меня есть панель действий с 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.

имени пункта = «андроид: selectableItemBackground»> @ вытяжка/btn_ab_quiz_normal

Есть ли способ сделать это без создания пользовательского представления?

Я также попробовал иметь изображение кнопки Quiz с текстом как часть изображения и установить Text = "", но значок отображается крошечным, потому что значки панели действий предназначены для конкретного измерения.

  • Нижеследующее изображение - это то, что я хочу, чтобы моя панель действий выглядела.

The action bar that I want

ответ

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> 

Connect 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 и создать новый элемент.

Я надеюсь, что это помогает ...;)

+0

Спасибо, но setBackgroundDrawable устанавливает фон панели действий, я просто хочу, чтобы установить фон элемента бара один действий. Я уже делаю все, что вы сказали, чтобы добавить предметы и раздуть меню. – TejAces

+0

Тогда вы должны работать с фотошопом. В фотошопе вы можете менять цвет предметов за 20 секунд. Если вам нужно, вы можете узнать о ScherlockActionBar. –

+0

Я тоже пробовал фотошоп по изображению, но он сжимал его до 72x72, потому что это размеры ожидаются для значка. Я думаю, мне придется добавить customView в панель действий. SherlockActionBar обычно используется для поддержки Android версии 3.0 и ниже, так как тогда панель действий недоступна. – TejAces