Android - 如何通过png将动作栏“向上图标”按下颜色显示?

时间:2013-10-10 19:52:06

标签: android styles android-actionbar themes xamarin

在我的ActionBar上,“按下”状态下的“向上图标”和徽标显示鲜红色边框(正如我所知)。但它没有通过图像的透明度显示鲜红色,因此图像仍然显示ActionBar正常的背景颜色。图像是透明的,可在默认主题中使用。但是当使用ActionBar主题生成器时,我无法让它工作。但是,右侧的“操作”按钮表现正常。

通过使按下的状态透明,我可以让浅红色完全消失,所以我想我是在图像下面设置样式,而不是图像(或它的直接容器?)。我不是在使用Sherlock。我的目标是min sdk 16。

我的主题xml:

...
<item name="android:actionBarItemBackground">@drawable/red_selectable_background</item>

我的red_selectable_background.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
    <item android:state_pressed="false" android:state_focused="true" android:drawable="@android:color/transparent" />
    <item android:state_pressed="true" android:drawable="@drawable/red_pressed_background" />
    <item android:drawable="@android:color/transparent" />
</selector>

我的red_pressed_background.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@color/blood_red" />
</shape>

我的颜色:

<color name="blood_red">#a00f0f</color>

1 个答案:

答案 0 :(得分:0)

我吹走了我的风格并且产生了新鲜感。我认为我缺少的是当我将ActionBar主题与Holo主题(两者都生成)合并时,我没有正确合并生成的顶级ActionBar主题。现在我不需要我之前写过的任何自定义内容。

基本上我只需将以下项目合并到我继承自android的主题中:Theme.Holo:

<item name="android:actionBarItemBackground">@drawable/selectable_background_xxx</item>
<item name="android:popupMenuStyle">@style/PopupMenu.xxx</item>
<item name="android:dropDownListViewStyle">@style/DropDownListView.xxx</item>
<item name="android:actionBarTabStyle">@style/ActionBarTabStyle.xxx</item>
<item name="android:actionDropDownStyle">@style/DropDownNav.xxx</item>
<item name="android:actionBarStyle">@style/ActionBar.Transparent.xxx</item>
<item name="android:actionModeBackground">@drawable/cab_background_top_xxx</item>
<item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_xxx</item>
<item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.xxx</item>