将背景设置为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中创建的内容(btw删除 @之后的空格)是 StatelistDrawable 您没有提到的布局。因此,使用 imageView.setimageresource(r.drawable.mydrawable) 设置它。
其他提示
这是有效的代码...
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);
不隶属于 StackOverflow