Android 更改a的颜色<;形状>;以XML编程方式定义

Android 更改a的颜色<;形状>;以XML编程方式定义,android,xml,Android,Xml,我不确定如何最好地更改我在xml编程中定义的颜色。假设我有以下形状元素: 下面的观点 如何在程序中更改矩形/视图的颜色?欢迎提出任何建议。如下访问: View v = findViewById(R.id.rect4); v.setBackground(R.drawable.rectangle); 将名为rectangle.xml的xml文件存储在drawable文件夹中,就是这样 GradientDrawable backgroundShape = (GradientDrawable)

我不确定如何最好地更改我在xml编程中定义的颜色。假设我有以下形状元素:


下面的观点


如何在程序中更改矩形/视图的颜色?欢迎提出任何建议。

如下访问:

View v = findViewById(R.id.rect4);
v.setBackground(R.drawable.rectangle);
将名为rectangle.xml的xml文件存储在drawable文件夹中,就是这样

GradientDrawable backgroundShape = (GradientDrawable)btn.getBackground();
backgroundShape.setColor(Color.BLACK);

你的问题有点含糊。您需要设置许多不同的颜色还是要在两种颜色之间切换

例如,可以定义仅在颜色上不同的另一个形状(或多个其他形状),并将不同的形状设置为视图

但是,如果您只需要一个矩形,您可以直接设置一种颜色作为视图的背景

或者,您可以为不同的状态定义具有不同颜色的状态选择器。甚至定义自己的自定义状态


尽管如此,我不知道什么最适合您的需要。

@Saeed我知道,但我认为,提问者希望它与xml相适应,所以我回答,我做错了吗?@Saeed您介意指出您建议的更改方式吗?获得
GradientDrawable
视图,然后更改颜色