4

如果菜单项被推送到拆分操作栏,有没有办法提供不同的可绘制图标?我的拆分操作栏颜色与顶部栏有很大不同,并且单个图标样式在视觉上并不像我希望的那样令人愉悦。

4

3 回答 3

0

Drawables要用于拆分的/res/drawable/放入 并将其他放入/res/drawable-w480dp

于 2013-10-15T12:10:18.043 回答
-1

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

split_action_bar_is_narrow

然后,要提供替代可绘制对象,您应该在这些值目录中定义适当的引用,例如:

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>

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

于 2014-06-01T12:25:08.843 回答
-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 版本)

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

于 2013-10-09T15:27:14.060 回答