如何通过Java代码在android中更改颜色值

问题描述 投票:1回答:2

我想更改颜色变量的十六进制颜色值和在MainActivity.java代码显示的colors.xml文件。

我应该在方法或开关或if / else中的java文件中编写什么代码声明要更改吗?

enter image description here

java android android-studio colors android-styles
2个回答
4
投票

您应该使用主题和样式来更改颜色值。请参阅:Styles and Themes

基本上,应该在styles.xml中声明颜色:

<style name="GreenText" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#00FF00</item>
</style>

<style name="RedText" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#ff0000</item>
</style>

然后声明在onCreate中使用哪个主题(在setContentView()之前:

 switch (theme) {
     case 1:
         setTheme(R.style.Green);
         break;
     case 2:
         setTheme(R.style.Red);
         break;
 }

编辑:您只能在onCreate()期间更改主题-如果以后要在运行时更改主题,则必须通过调用recreate()

重新创建活动

0
投票

遗憾的是,资源目录中的所有颜色值(和其他资源)都被硬编码为静态最终整数。这意味着无法在运行时更改值。但是,您可以使用以前建议的解决方案之一,也可以查看此出色的

here's exaplained

© www.soinside.com 2019 - 2024. All rights reserved.