0

私のアプリには、親の 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 は次のとおりです。

http://imgur.com/Skwzd2z

ここに画像の説明を入力

その中心は透明で、アプリに設定されている背景が表示されるようになりましたが、押されたりフォーカスされたりすると異なる色を表示したい

どんな助けにも感謝します

4

2 に答える 2

0

ローカルのファイルではなく、誤って Android ファイルをインポートしていないことを確認してくださいR。確かにそうです。

アップデート:

ImageView背景を設定するには、次のようにします。

image.setImageResource(R.drawable.your_drawable_resource);
于 2013-03-28T13:45:35.980 に答える
0

最初にクリーンアップしてビルダーをプロジェクトしても、同じエラーが発生します

このステートメントが含まれているかどうかをインポート領域で確認してください

android.R をインポートします。

はいの場合は、my.package.R のように R を含めてパッケージ名を使用する必要があります。

于 2013-03-28T13:47:51.443 に答える