设置Imageview背景

问题描述:

我正在创建一个动态Imageview。设置Imageview背景

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?

在此先感谢。

你在这个XML中创建了什么(在@之后删除空格)是StateListDrawable而不是你提到的Layout。 因此,请使用ImageView.setImageResource(R.drawable.mydrawable)进行设置。

+0

,并确保它在你的文件夹绘制的,而不是你的布局文件夹。 – kcoppock 2011-01-06 14:04:45

+0

StateListDrawable修复我的问题,谢谢dtmilano! 对于有同样问题的用户,我在下面的文章中留下了代码 – seba123neo 2011-01-06 14:13:36

这是工作代码...

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);