2011-01-06 16 views
2

私は動的にイメージビューを作成しています。私は画像の状態が含まれているレイアウトを配置する必要があり背景をイメージビューに設定する

ImageView btnSend = new ImageView (this); 

、これはXMLです:

<? xml version = "1.0" encoding = "utf-8"?> 
<selector 
     xmlns: android = "http://schemas.android.com/apk/res/android"> 
     <item 
      android: state_focused = "true" 
      android: state_pressed = "false" 
      android: drawable = "@ drawable/button_state3" /> 
     <item 
      android: state_focused = "true" 
      android: state_pressed = "true" 
      android: drawable = "@ drawable/button_state2" /> 
     <item 
      android: state_focused = "false" 
      android: state_pressed = "true" 
      android: drawable = "@ drawable/button_state2" /> 
     <item 
      android: drawable = "@ drawable/button_state1" /> 
</ selector> 

私はsetBackgroundResourceプロパティでテストが、動作しません。

このレイアウトをImageviewに割り当てる方法を教えてください。

ありがとうございます。

答えて

3

あなたがこのXMLで作成したもの(@のあとの空白を削除する)は、上記のレイアウトではなくStateListDrawableです。 したがって、ImageView.setImageResource(R.drawable.mydrawable)を使用して設定してください。

+0

動作するコードであり、それはあなたの描画可能なフォルダではなく、あなたのレイアウトフォルダ内にあることを確認します。 – kcoppock

+0

StateListDrawableは私の問題を修正しました、ありがとうdtmilano !! 私は同じ問題を抱えているユーザーのために以下の投稿にコードを残します – seba123neo

2

これは...

ImageView btnEliminar = new ImageView (this); 

StateListDrawable drawable = new StateListDrawable(); 

Drawable normal = getResources().getDrawable(R.drawable.image_normal); 
Drawable selected = getResources().getDrawable(R.drawable.image_selected); 
Drawable pressed = getResources().getDrawable(R.drawable.image_pressed); 

drawable.addState(new int[] { android.R.attr.state_pressed}, pressed); 
drawable.addState(new int[] { android.R.attr.state_focused}, selected); 
drawable.addState(new int[] { android.R.attr.state_enabled}, normal); 

btnEliminar.setImageDrawable(drawable); 
関連する問題