Android Wear - 如何捕捉触摸事件 [英] Android wear - how to capture touch events

查看:31
本文介绍了Android Wear - 如何捕捉触摸事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆