應用程序運行時是否可以在Java代碼中更改矩形(用xml繪製)顏色?在應用程序運行時更改XML形狀顏色
我rectangle.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
<stroke android:width="2dp" android:color="#ffffff" />
<padding android:left="20dp"
android:top="20dp"
android:right="20dp"
android:bottom="20dp" />
<solid android:color="#006600" />
</shape>
通過繪製main.xml中:
<View
android:id="@+id/myRectangleView"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="@drawable/rectangle"/>
我已經試過這樣:
GradientDrawable sd;
View viewrectangle;
viewrectangle = (View) findViewById(R.id.myRectangleView);
sd = (GradientDrawable) viewrectangle.getBackground();
sd.setColor(0xffffff00);
sd.invalidateSelf();
它只有當我把作品它在OnCreate方法中。
我想通過按鈕來改變矩形的顏色,所以我把這個代碼放在按鈕的onClick()方法中。但是當我點擊按鈕時,應用程序運行顏色不會改變。有什麼建議麼?
如果以下任何答案都可以解決您的問題,或者幫助您解決問題,您應該點擊該答案旁邊的複選標記以將其標記爲已接受的答案並賦予作者信用評分。 – Barak