Pra*_*y C 1 xml android colors android-layout android-theme
我是android开发的新手,所以请耐心等待.我的应用程序元素(按钮颜色,背景颜色,文本颜色,分隔符颜色等)使用colors.xml中的颜色,例如使用"@ color/mycolor".
我的colors.xml看起来像:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="mycolor">#202020</color>
<color name="white">#FFFFFF</color>
<color name="whitehint">#50FFFFFF</color>
<color name="primary">#673AB7</color>
<color name="primary_dark">#512DA8</color>
<color name="primary_light">#D1C4E9</color>
<color name="accent">#794cc9</color>
<color name="primary_text">#212121</color>
<color name="secondary_text">#a4a4a4</color>
<color name="icons">#FFFFFF</color>
<color name="divider">#B6B6B6</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
现在我有一个菜单,用户可以选择一个不同的主题,我想使用第二个colors2.xml,例如,它具有相同的颜色名称,但键的十六进制代码不同.如何查看我的应用程序引用的xml文件?
colors.xml只是一个惯例.所有这些颜色将被定义并可并行访问...res/values/colors.xml平板电脑的默认颜色和颜色res/values-sw600dp/colors.xml(文件名不重要),这可能不是你想要的.假设你有这些主题:
<style name="Theme.My.DarkRed" parent="Theme.AppCompat">
<item name="colorPrimary">#f00</item>
<item name="colorPrimaryDark">#c00</item>
<item name="colorAccent">#c90</item>
</style>
<style name="Theme.My.LightBlue" parent="Theme.AppCompat.Light">
<item name="colorPrimary">#9ff</item>
<item name="colorPrimaryDark">#6cc</item>
<item name="colorAccent">#06f</item>
</style>
Run Code Online (Sandbox Code Playgroud)
现在,当您定义例如android:background="?colorAccent"适合您正在使用的主题的颜色时,将会得到解决.
注意:遗憾的是,在Lollipop之前,这些颜色attr引用不能用于XML drawables.
TypedArray a = context.obtainStyledAttributes(new int[]{R.attr.colorPrimary, R.attr.colorAccent});
int colorPrimary = a.getColor(0);
int colorAccent = a.getColor(1);
a.recycle();
Run Code Online (Sandbox Code Playgroud)
android:windowBackground
android:colorForeground
android:colorBackground
android:textColorPrimary
android:textColorSecondary
colorPrimary <!-- without prefix in AppCompat, with prefix on pure Lollipop -->
colorPrimaryDark
colorPrimaryAccent
colorControlNormal
colorControlActivated
colorControlHighlight
colorButtonNormal
android:textColorHint
android:textColorLink
android:textColorHighlight
android:listDivider
Run Code Online (Sandbox Code Playgroud)
等等,等等......
您可以查看Android\sdk\platforms\android-*\data\res\values\themes*.xml和appcompat-v7源代码以获取更多属性.
然后你甚至可以定义自己的attrs(非主题,使用谷歌).