繁体   English   中英

如何通过onTouchListener区分ACTION_UP和实际点击?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM