【问题标题】:Changing XML color from java code从 java 代码更改 XML 颜色
【发布时间】:2014-08-01 11:27:46
【问题描述】:

我想要一个形状为圆形的button,我可以从我的.java 文件中更改其背景颜色。

我不想使用更改来实现此目的的圆形图像,因为我想潜在地使用任何十六进制颜色并且我需要太多图像。

我创建了一个名为 roundbutton 的XML 文件,它使用 45 角半径显示一个圆形按钮,但我需要能够更改颜色属性(例如android:color="#ff0000") 来自我的 .java

圆形按钮现在显示正常,但只显示我在 xml 文件中设置的颜色,如果我使用buttonname.setBackgroundColor(Color.rgb(0, 255, 0));,圆圈将被替换为正方形,所以如果我可以使用 XML 颜色属性就可以了把它从.java改成!

顺便说一句,我在按下另一个按钮时会改变这个圆形按钮的颜色。

希望这是有道理的,在此先感谢!

XML 圈子:

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle">
    <solid android:color="#ff0000" />  <<<<NEED TO CHANGE THE COLOUR CODE HERE FROM WITHIN .JAVA
    <corners android:bottomRightRadius="45dp"
    android:bottomLeftRadius="45dp"  
    android:topRightRadius="45dp"
    android:topLeftRadius="45dp"/>
</shape>

【问题讨论】:

  • 试试这个.... buttonname.setBackgroundColor(Color.parseColor("#002300"));
  • 使用它与 .setBackgroundColor(color.RED) 具有相同的效果,自定义形状被替换为彩色正方形。改变 XML 属性似乎是唯一的方法
  • 你到底想要什么.....改变按钮颜色或按钮形状??
  • 我只是想更改我创建的自定义圆形按钮的颜色,但是当更改背景颜色时,它会更改为我选择的颜色的正方形,而不是将圆形按钮更改为不同的颜色.

标签: java android xml colors


【解决方案1】:

使用.setBackgroundColor(getResources().getColor(R.color.your_color_in_xmlfile));创建另一个具有不同颜色和访问文件的形状xml

【讨论】:

  • 当然我需要为每种颜色创建一个形状,并且可能有多种可能性。
【解决方案2】:

使用 .setBackgroundColor(getResources().getColor(R.color.your_color_in_xmlfile)); 中的 onClickListener() 按钮来改变颜色,否则使用

View.setBackgroundColor(Color.parseColor("#E7FC3A")); 

如果您使用的是 .java 文件,即不使用 .xml 文件设置颜色,否则它不会显示对方向更改的影响

【讨论】:

  • 使用它与 .setBackgroundColor(color.RED) 具有相同的效果,自定义形状被替换为彩色正方形。改变 XML 属性似乎是唯一的方法。
  • 查看已编辑的答案,如果这不能满足您的需求,请更清楚,以便我可以帮助您
  • 我需要能够从 .java 编辑 XML 颜色属性
  • 在 xml 文件(如 String.xml、style.xml、color.xml)中定义的值是纯静态的,一旦在 xml 文件中定义了资源,就无法在运行时更改它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
相关资源
最近更新 更多