我有一张图片,但我想知道当用户的手指与屏幕接触时,我可以将此图像更改为另一张图像,然后当他们将手指移开时还原为旧图像。
我渴望学习这一点并尝试过点击监听器方法,但我只能真正地使图像永久改变,即使这样它的效果也很差。那么有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
是的,应该使用状态列表,这是一种Drawable,您可以为不同的状态定义不同的其他drawable(其中“按下”,“聚焦”,选择“等等):
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
请注意,项目的顺序很重要,默认的drawable应该放在选择项列表的最后。例如:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable_resource_pressed" android:state_pressed="true">
<item android:drawable="@drawable_resource_regular">
</selector>
答案 1 :(得分:0)
这里需要的是OnTouchListener。通过ImageView
将图像注册到想要更改的视图(例如,保存图像的setOnTouchListener()
)。
该听众有一个回调onTouch
,为您提供MotionEvent
。
使用MotionEvent.getAction()
并测试它是否等于MotionEvent.ACTION_DOWN
或MotionEvent.ACTION_UP
。当用户按下视图(向下)或释放按下(向上)时,这些是相应的事件。
只需做出相应的反应,然后将图片设置为ImageView
。
编辑:并且其他帖子中提到的州列表也有效,并且可能在这里有更优雅的解决方案(因为它在后台为您完成所有这些)当您想要通过触摸来更改图像时。
这仍然有用,要知道,你迟早会在其他地方需要它。例如,当您想通过按另一个视图而不是图像本身来更改图像时。