分裂动作栏的不同drawables

时间:2013-03-19 20:07:58

标签: android android-actionbar

如果菜单项被推送到拆分操作栏,有没有办法提供不同的可绘制图标?我的分割操作栏颜色与顶栏有很大不同,单个图标样式并不像我希望的那样直观。

3 个答案:

答案 0 :(得分:0)

将要用于分割的Drawables放在/res/drawable/中,并将其他/res/drawable-w480dp放入{{1}}。

答案 1 :(得分:-1)

您可以使用LevelListDrawable作为图标,并在屏幕配置更改时设置级别(这意味着调用Activity.onCreate()

  • 使用

    创建要在图标中使用的drawable
    <level-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:maxLevel="0" android:drawable="@drawable/**your bitmap dark**" />
    <item android:maxLevel="1" android:drawable="@drawable/**your bitmap light**" />
    </level-list>
    
  • 检测是否分割了ActionBar。这部分似乎很棘手。我正在使用SherlockActionBar并在那里工作(直到今天的Android版本)this way

  • 要更改一个drawable,请使用ActionBar.Tab在相应的getIcon().setLevel()级别设置。请注意,您无需转换为LevelListDrawable。无论出于何种原因,级别概念直接使用Drawable类实现。

答案 2 :(得分:-1)

在appcompat库中,拆分ActionBar用于除large,land或sw480dp之外的配置。如果您使用本机ActionBar,我猜您可以跳过大型配置。

split_action_bar_is_narrow

然后,要提供替代的drawable,您应该在这些值dirs中定义适当的引用,例如:

values

<item name="action_search_drawable" type="drawable" format="reference">@drawable/ic_action_search_narrow</item>

values-w480dp

<item name="action_search_drawable" type="drawable" format="reference">@drawable/ic_action_search</item>

然后,在菜单配置中,您应该使用此引用作为可绘制的图标。