我有一个带有图标的ImageView
。我希望能够:
的 1 即可。更改悬停时的图标(意思是 - 更改为 ACTION_DOWN 上的图标#2,但也会将其更改回 ACTION_UP 上的图标#1)
的 2 即可。触发onClick函数(意思是 - 当ImageView
点击时调用另一个函数)
这就是我onTouch
现在的样子:
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// CHANGE TO IMAGE #2
break;
case MotionEvent.ACTION_UP:
// CHANGE TO IMAGE #1
break;
}
return true;
}
问题是 - 我无法知道用户何时按下ImageView
,然后在按下的同时离开其区域。我希望我能很好地解释它。我的意思是 ACTION_UP 并不总是暗示用户打算点击视图。如何ImageView
点击并且不仅仅是悬停(并且仍然可以在悬停时更改图标),我怎么知道?
答案 0 :(得分:1)
如果您使用选择器会更好。您可以阅读有关StateList的更多信息。互联网上有很多例子如何使用。
答案 1 :(得分:1)
使用Selector Drawable
类似的东西。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- default -->
<item android:drawable="@drawable/btn_bg" android:state_focused="false" android:state_pressed="false" />
<!-- button focused -->
<item android:drawable="@drawable/btn_bg_focus_new" android:state_focused="true" android:state_pressed="false" />
<!-- button pressed -->
<item android:drawable="@drawable/btn_bg_focus_new" android:state_focused="false" android:state_pressed="true" />
</selector>