私のアプリには、親の onLayout メソッドにプログラムで追加された ImageView があります。フォーカスされているときと、押されたときと通常の状態とで異なる背景を持つようにしたい。値フォルダーにいくつかの色を定義しました。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="cream">#FBF9F5</color>
<color name="green">#93D932</color>
<color name="blue">#0095FF</color>
</resources>
次に、table_background_selector.xml という名前の drawables フォルダーにセレクターを定義しました。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@color/green" />:
<item android:state_pressed="true" android:drawable="@color/blue" />:
<item android:drawable="@color/cream" />:
</selector>
次に、初期化した後、その親の onLayout メソッドで背景を設定しようとします。
v.setBackground(getContext().getResources().getDrawable(R.drawable.table_background_selector));
そして、それがIntelliJが私に問題を示したときです:
"Cannot resolve method 'setBackground(android.graphics.drawable.Drawable)'"
そして、 View クラスには setBackground(Drawable background) メソッドがあるため、その理由がわかりません
setImageResource で設定した .png は次のとおりです。
その中心は透明で、アプリに設定されている背景が表示されるようになりましたが、押されたりフォーカスされたりすると異なる色を表示したい
どんな助けにも感謝します