アプリの実行中に Java コードで長方形 (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() メソッドの中に入れます。しかし、アプリの実行中にボタンをクリックしても、色は変わりません。助言がありますか?