安卓系统中的自定义主题和颜色

3
我能否为两个不同的主题定义完全不同的colors.xml?例如,在我的情况下,我们在配色方案中使用了比标准主题(如android:colorPrimary,android:colorAccent,android:colorBackground等)定义的更多的不同颜色。希望我的问题清楚明了。如果不清楚,请在评论中询问。

你可以为不同的活动创建不同的主题。 - Vivek Mishra
1
如果您想在应用程序中支持多个主题,您必须针对每个主题声明适当的属性,然后为每个属性定义样式。之后,您可以调用活动的setTheme方法来设置实际主题。 - Amritpal Singh
无法创建动态color.xml文件。但是您可以创建不同名称的不同资源文件。您可以将这些颜色资源文件用作主题的输入颜色。 - Muhamed Riyas M
1个回答

3

好的,经过一番搜索,我找到了这样的解决方案。设计师不想使用colorPrimary等属性,所以我在attrs中添加了自定义属性,如下:

<attr name="colorExperiment" format="color"/>

然后,在主题的样式中添加这个属性,如下:

 <style name="DarkTheme" parent="AppTheme.NoActionBar">
    <item name="android:windowAnimationStyle">@null</item>
    <item name="android:windowBackground">@color/onyx</item>
    <item name="colorExperiment">@color/onyx</item>
</style>

例如,在布局中使用:

<TextView
   android:id="@+id/auth_caption"
   android:includeFontPadding="false"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_centerHorizontal="true"
   android:gravity="center"
   android:textSize="34dp"
   android:text="@string/auth_caption"
   android:textColor="?colorExperiment"
 />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接