Android Wear - 如何捕捉触摸事件 [英] Android wear - how to capture touch events
问题描述
我想在Android Wear上捕捉触摸事件(我使用的是Samsung Gear Live)来绘制触摸轨迹.我尝试将 onTouch 事件和 onGenericMotionEvent 事件捕获为以下代码,但该事件仅触发一次,有时在我在屏幕上滑动时不会发生.我需要更多的触摸事件(从左向右滑动时至少有 5 到 6 个事件)来绘制轨迹.如何在 Android Wear 屏幕上捕获足够多的触摸事件?
I want to capture the touch events on Android wear (I am using Samsung Gear Live) to draw the trajectory of touch. I tried to capture onTouch event and onGenericMotionEvent event as the following code, but the event is triggered only one time or sometimes does not happen while I swiping on the screen. I need more touch events (at least 5 to 6 events when I swipe left to right) to draw the trajectory. How I can capture enough touch events on Android Wear screen?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
ViewGroup container = (ViewGroup) findViewById(R.id.container);
container.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
String s = "";
s += "action=" + event.getAction();
s += ", X=" + event.getX();
s += ", Y=" + event.getY();
Log.d(TAG, s);
return false;
}
});
container.setOnGenericMotionListener(new View.OnGenericMotionListener() {
@Override
public boolean onGenericMotion(View view, MotionEvent event) {
String s = "";
s += "action=" + event.getAction();
s += ", X=" + event.getX();
s += ", Y=" + event.getY();
Log.d(TAG, s);
return false;
}
});
}
});
}
推荐答案
你可以试试只用:
container.setOnTouchListener(new View.OnTouchListener() {
和 return true
从那里?您需要通知 View
您消费了该事件.
and return true
from there? You need to inform the View
you consumed the event.
这篇关于Android Wear - 如何捕捉触摸事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!