Java 从代码更改布局的背景色
我有一个视图,它有一个定义的可绘制背景,使其成为一个圆形,并为其提供基本背景颜色: circle_block.xml:Java 从代码更改布局的背景色,java,android,xml,android-linearlayout,android-drawable,Java,Android,Xml,Android Linearlayout,Android Drawable,我有一个视图,它有一个定义的可绘制背景,使其成为一个圆形,并为其提供基本背景颜色: circle_block.xml: 但它只是变白了。保持椭圆形很重要。在res/values文件夹中创建colors.xml文件: <?xml version="1.0" encoding="utf-8"?> <resources> <color name="blue">#ff64c2f4</color> </resources> 在res/v
但它只是变白了。保持椭圆形很重要。在res/values文件夹中创建colors.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="blue">#ff64c2f4</color>
</resources>
在res/values文件夹中创建colors.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="blue">#ff64c2f4</color>
</resources>
请尝试以下操作,因为线性布局由自定义背景组成
GradientDrawable drawable = container.getBackground();
drawable.setColor(yourcolorvalue);
请尝试以下操作,因为线性布局由自定义背景组成
GradientDrawable drawable = container.getBackground();
drawable.setColor(yourcolorvalue);
这里
container.setBackgroundColor0x4CAF50
此行将替换您正在使用circle_block.xml在xml中设置的背景
因此,如果要更改布局背景可绘制颜色,请使用drawable.setColorFilter:
这将改变当前布局背景中形状的颜色
container.setBackgroundColor0x4CAF50
此行将替换您正在使用circle_block.xml在xml中设置的背景
因此,如果要更改布局背景可绘制颜色,请使用drawable.setColorFilter:
这将更改当前布局背景中形状的颜色谢谢您的快速回答!它实际上改变了背景色,但破坏了椭圆形。布局必须保持圆形。我能这样做吗?谢谢你的快速回答!它实际上改变了背景色,但破坏了椭圆形。布局必须保持圆形。我能这样做吗?嘿,这不会改变背景颜色。无论如何,谢谢你的回答。@Gofilord:你使用的是不可见的0x4CAF50。用颜色检查一下。雷德威尔,这确实有效。但我看不出我的颜色有什么问题。如何应用十六进制色码?好的,我已经猜出来了。我只需要使用Color.parseColormycolorstringHey,这不会改变背景色。无论如何,谢谢你的回答。@Gofilord:你使用的是不可见的0x4CAF50。用颜色检查一下。雷德威尔,这确实有效。但我看不出我的颜色有什么问题。如何应用十六进制色码?好的,我已经猜出来了。我只需要使用Color.parseColormycolorstring
container.setBackgroundColor(getResources().getColor(R.color.blue));
GradientDrawable drawable = container.getBackground();
drawable.setColor(yourcolorvalue);
Drawable drawable = getResources().getDrawable(R.drawable.circle_block);
drawable.setColorFilter(0x4CAF50, PorterDuff.Mode.SRC_ATOP);
container.setBackgroundDrawable(drawable);