我不确定以编程方式更改我在xml中定义的颜色的最佳方法。假设我有以下形状元素:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#00FF7F"/>
</shape>
以及以下视图......
<View android:layout_width="200dp"
android:layout_height="175dp"
android:background="@drawable/rectangle"
android:visibility="visible"
android:id="@+id/rect4"
android:layout_below="@+id/rect2"
android:layout_toEndOf="@+id/rect1"
android:layout_marginEnd="5dp"
android:layout_marginBottom="5dp"/>
如何在程序中更改矩形/视图的颜色?任何建议都表示赞赏。
答案 0 :(得分:1)
像这样访问它:
View v = findViewById(R.id.rect4);
v.setBackground(R.drawable.rectangle);
在 drawable 文件夹中存储名为 rectangle.xml 的xml文件,该文件
答案 1 :(得分:0)
试着吼叫。
GradientDrawable backgroundShape = (GradientDrawable)btn.getBackground();
backgroundShape.setColor(Color.BLACK);
答案 2 :(得分:0)
你的问题有点模糊。你需要设置许多不同的颜色,还是想在两种颜色之间切换?
例如,您可以定义另一个仅在颜色上有所不同的形状(或多个其他形状),并将不同的形状设置为视图。
但是,如果您只需要一个矩形,则可以直接将颜色设置为视图的背景。
或者您可以为不同的状态定义具有不同颜色的状态选择器。甚至可以定义自己的自定义状态。
但是,我不知道最适合您需求的是什么。