android - Galaxy S4 上的 float 触控

标签 android hover galaxy samsung-mobile

Samsung Galaxy S4 具有“ float 触摸”功能,即使没有触摸屏幕也可以检测到手指。

当手指悬停在按钮上时,我想在按钮 (btn1) 上触发一个事件。

我尝试使用 OnHoverListener,但是当 MotionEventMotionEvent.ACTION_HOVER_ENTERMotionEvent.ACTION_HOVER_EXITMotionEvent.ACTION_HOVER_MOVE,这是我需要的事件。

这是我的代码:

btn1.setOnHoverListener(new OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
    Log.d("FloatingTouch", "onHover: "+event.getAction());
    switch (event.getAction()) {
      case MotionEvent.ACTION_HOVER_ENTER:
          Log.d("FloatingTouch", "ACTION_HOVER_ENTER" );
          return true;
      case MotionEvent.ACTION_HOVER_MOVE:
          Log.d("FloatingTouch", "ACTION_HOVER_MOVE" );
          return true;
      case MotionEvent.ACTION_HOVER_EXIT:
          Log.d("FloatingTouch", "ACTION_HOVER_EXIT" );
          break;
      default:
          break;
    }
    return false;
}
});

我错过了什么吗?也许一些许可?

最佳答案

好的,我终于明白了!

要使其正常工作,您必须:

  1. 为 list 中的 Activity 添加一个新的 intent 过滤器到 com.sec.android.airview.HOVER:
<intent-filter>
<action android:name="com.sec.android.airview.HOVER" />
</intent-filter>
  1. 添加一个onHoverListener给你View
convertView.setOnHoverListener(new OnHoverListener() {
    @Override
    public boolean onHover(View v, MotionEvent event) {
        Log.d("ListAdapter", "Hover: " + item);
        return false;
    }
});

它会起作用。

关于android - Galaxy S4 上的 float 触控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16666965/

相关文章:

java - eclipse 中是否有生成资源的快捷方式(构造函数、get/set .....)

java - Android Mysql数据库php文件位置

android - Samsung Galaxy/Holoeverywhere - 资源不是 ColorStateList(颜色或路径)

android - 了解三星 Galaxy Tab 屏幕密度

经典 ASP 与 ASP.Net 3.5 中的 CSS?

android - 应用程序在谷歌市场上不可用 Galaxy S4

android - 如何返回上传图片的URL

android - Android 中的 MFMailComposeViewController?

html - :hover not working?

jquery - Squarespace 代码注入(inject)帮助 - 熨斗模板悬停效果