我有一个滚动视图,里面有很多图像按钮。我想在按下图像按钮时更改它的图像。问题是,我希望图像一直保留到按下另一个图像按钮。这就是我不能使用选择器的原因。实现his的最佳实践是什么?
诚挚的问候
发布于 2010-11-16 18:34:07
你想这么做。
ImageButton Demo_button = (ImageButton)findViewById(R.id.firstimage);
// when you click this demo button
Demo_button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Demo_button.setImageResource(R.drawable.secondimage);
}
}
尝尝这个。(将setset更新为set)
发布于 2014-03-18 18:21:35
更好的解决方案是,使用以下xml作为图像的来源:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_activated="true">
<bitmap android:src="@drawable/image_selected"/>
</item>
<item>
<bitmap android:src="@drawable/image_not_selected"/>
</item>
</selector>
@Override
public void onClick(View v) {
v.setActivated(!v.isActivated());
}
发布于 2017-07-21 21:58:02
实现这一目标的最短方法是只使用XML (不使用Java代码):
在两个图像旁边将以下内容另存为drawable/image_pressable.xml
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/image_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/image_regular" />
</selector>
然后将其引用为:
<ImageView android:src="@drawable/image_pressable" />
提示:
使用state_pressed
而不是state_activated
可以在用手指按下图像时更改图像。如果你想动态改变ImageView的状态,state_activated
可能会很有用,但如果你只是想让它在按下时表现不同,而不涉及任何代码,那就不是这样了。这正是在这个主题的问题中被问到的问题。
https://stackoverflow.com/questions/4193167
复制相似问题