Scroll 在SmartWatch 2中使用触摸事件管理滚动
我有这个:Scroll 在SmartWatch 2中使用触摸事件管理滚动,scroll,touch,sony,sony-smartwatch,Scroll,Touch,Sony,Sony Smartwatch,我有这个: @Override public void onTouch(final ControlTouchEvent event) { int action = event.getAction(); if (action == Control.Intents.TOUCH_ACTION_PRESS) { Log.d("Touch Test", "Touch: Press at " + event.getX() + " - " + event.getY());
@Override
public void onTouch(final ControlTouchEvent event) {
int action = event.getAction();
if (action == Control.Intents.TOUCH_ACTION_PRESS) {
Log.d("Touch Test", "Touch: Press at " + event.getX() + " - " + event.getY());
}
else if (action == Control.Intents.TOUCH_ACTION_RELEASE) {
Log.d("Touch Test", "Touch: Release at " + event.getX() + " - " + event.getY());
}
}
基本上,它的工作,但为单压力机。让我解释一下
如果您按下屏幕并在同一位置释放,以免称之为“点击”,两个日志都会被触发,先按,然后释放
但是我想管理滚动,所以,如果我按下,然后移动手指,然后在屏幕的其他位置释放,我只会触发press事件
我想知道按下时的开始位置和释放时的结束位置,这样我可以滚动布局
我怎样才能做到这一点
谢谢
但是我想管理滚动,所以,如果我按下,然后移动手指,然后在屏幕的其他位置释放,我只会触发press事件
我认为这是因为您正在执行一个滑动事件,因此在释放时,它将触发控件.Intent.swip_方向[向上|向下|右|左]
操作和非控件.Intent.TOUCH_操作\u释放
如果不需要刷卡事件,可以从清单中删除刷卡意图。否则,你应该考虑使用扫描意图来管理滚动。主要区别在于,在滑动事件中,您无法获得滑动的幅度,只能获得方向,但对于大多数情况,这应该足够了。SmartWatch 2在触摸检测方面的功能不一致。因此,并非每个
TOUCH\u ACTION\u PRESS
事件之后都会发生TOUCH\u ACTION\u RELEASE
事件(与SmartWatch 1的情况相同),但它之后可能会发生swip
事件。另外,滑动
事件太容易触发,因此任何想要实现滚动的尝试都不会成功
最好的办法是使用Gallery和ListView进行平滑滚动。正如其他人所说,不支持“按原样滚动”
SDK不错,但是缺少一些功能。我希望索尼在将来更新它,但是,现在可能太晚了
这就是我在我的应用程序上所做的:
我使用TOUCH\u ACTION\u PRESS
将按下操作保存在全局对象中,然后使用SWIPE
事件获取方向
在刷卡例程中,我询问是否已执行了按
事件,如果已执行,则使用刷卡方向进行“滚动”
为了获得更好的感觉,我询问了按下按钮在Y轴上的起始位置,因此,如果让我们说按下按钮从屏幕底部开始,并且向上滑动,我移动视图的次数比按下按钮从半屏幕开始的次数要多
这不是很顺利,但是,我认为没有更好的办法。另一个选项是使用屏幕上的按钮,但我不喜欢它们。我还没有完全理解这一点,但当我没有任何可点击的对象时,我得到了三组事件:
对于简单的点击:按onTouch(按下),然后按onTouch(释放)
对于滑动:onTouch(按),然后是onSwipe()
不幸的是,对于非常短的敲击或滑动的敲击:
仅限onTouch(按)按钮
如果您有可单击的对象,则它似乎有所不同。当我这样做时,我得到的模式是:
对于简单的点击:点击onTouch(按),然后点击onTouch(释放),然后点击OnObject
对于所有滑动:按onTouch(按),然后按onSwipe()
由于onSwipe只提供方向,而不提供事件(带位置),因此我无法找到令人满意的处理方法,除非在我进入onTouch(按下)时处理所有事件,然后在有后续onSwipe时撤消点击操作。这取决于你在做什么,撤销可能很容易,也可能很棘手-但是如果足够快,用户将永远不会注意到
在清单中关闭刷卡没有帮助-您只是丢失了onSwipe事件,遗憾的是没有获得onTouch(释放)。谢谢您的回答,我想我可以同时使用触摸和刷卡来做一些事情。谢谢