[英]ACTION_UP is not triggered for a quick/normal click on OnTouchListener.onTouch
[英]How to distinguish between ACTION_UP and actual click via onTouchListener?
我有一个带图标的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
而不仅仅是将其悬停(并且仍然能够在悬停时更改图标)?
如果您将使用选择器会更好。 您可以阅读有关StateList的更多信息。 互联网上有许多使用示例。
使用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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.