【发布时间】:2015-01-02 23:50:42
【问题描述】:
当我将 AppCompat 库中的可绘制对象用于我的 Toolbar 菜单项时,着色按预期工作。像这样:
<item
android:id="@+id/action_clear"
android:icon="@drawable/abc_ic_clear_mtrl_alpha" <-- from AppCompat
android:title="@string/clear" />
但是,如果我使用自己的可绘制对象,甚至将 AppCompat 库中的可绘制对象复制到我自己的项目中,它根本不会着色。
<item
android:id="@+id/action_clear"
android:icon="@drawable/abc_ic_clear_mtrl_alpha_copy" <-- copy from AppCompat
android:title="@string/clear" />
AppCompatToolbar 中是否有一些特殊的魔法,只为该库中的可绘制对象着色?有什么方法可以让它与我自己的可绘制对象一起使用?
使用 compileSdkVersion = 21 和 targetSdkVersion = 21 在 API 级别 19 设备上运行此程序,并使用 AppCompat 中的所有内容
abc_ic_clear_mtrl_alpha_copy 是来自AppCompat 的abc_ic_clear_mtrl_alpha png 的精确副本
编辑:
着色基于我在主题中为android:textColorPrimary 设置的值。
例如<item name="android:textColorPrimary">#00FF00</item> 会给我一个绿色的色调。
截图
使用 AppCompat 中的 drawable 可以按预期进行着色
着色不适用于从 AppCompat 复制的可绘制对象
【问题讨论】:
-
两种样式有相同的父级?如果你用自己的扩展顶部样式怎么办?
-
样式没有区别。唯一的区别是drawable,它们都是.png文件
-
drawable 看起来像是代码中原始 AppCombat drawable 的精确副本?
-
它们是我复制的 png 文件。它们完全相同。
-
那么,如果你的代码具有相同的样式和相同的图像,那么你的代码与原始代码到底有什么不同呢?
标签: android toolbar android-appcompat tint