首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在手表面板中处理触摸事件

在手表面板中处理触摸事件
EN

Stack Overflow用户
提问于 2015-02-04 21:52:54
回答 2查看 1.3K关注 0票数 1

我有一个手表表面建立在最新的应用程序接口(扩展CanvasWatchFaceService.Engine)。现在我想让触摸事件在手表表面有一种活动区域,可以触摸打开设置等。CanvasWatchFaceService.Engine继承自WallpaperService.Engine,它声明了两个重要的方法:setTouchEventsEnabled(boolean)onTouchEvent(MotionEvent)

但是,即使我在EngineonCreate()方法中调用setTouchEventsEnabled(true),我也从未在引擎实现中收到对onTouchEvent(MotionEvent)的调用。

是我做错了什么,还是根本不可能?我知道有些watch faces提供了活动区域,但我不确定这些区域是基于最新的API构建的,还是基于过时的API构建的(使用布局和GUI元素)。

EN

回答 2

Stack Overflow用户

发布于 2015-09-21 00:23:48

在新的Android Wear 1.3中使用Interactive Watch Face API:

  • http://developer.android.com/training/wearables/watch-faces/interacting.html
  • http://android-developers.blogspot.hu/2015/08/interactive-watch-faces-with-latest.html

更新:

在基于CanvasWatchFaceService.Engine的类中的onCreate函数中,只向初始化函数添加一行:

代码语言:javascript
复制
setWatchFaceStyle(new WatchFaceStyle.Builder(mService)
    .setAcceptsTapEvents(true)
    // other style customizations
    .build());

和管理下的点击事件

代码语言:javascript
复制
@Override
public void onTapCommand(int tapType, int x, int y, long eventTime) { }

备注:

  • 你必须添加你自己的代码来找出哪些触摸目标(如果有的话)被点击了,它只能检测单次点击、短点击、不能滑动或长按。
  • 通过检测TAP_TYPE_TOUCHTAP_TYPE_TOUCH_CANCEL,你可以猜测滑动的手势,尽管TAP_TYPE_TOUCH_CANCEL不提供退出coordinates.

为了获得更多的控制,你唯一的选择是添加一个SYSTEM_ALERT层,并根据你可以从onVisibilityChangedonAmbientModeChanged收集的信息来打开/关闭它。

票数 6
EN

Stack Overflow用户

发布于 2015-02-04 21:59:45

这是不可能的。我想我是在Android开发者小组的Google Plus上的一个帖子里读到的。

表盘是一个“静态”的东西,就在那里,只是显示时间。触摸事件永远不会被分派给它。

建议的设置模式是在手机应用程序上的配套应用程序上实现它。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28323119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档