#touch #wear-os
#коснитесь #wear-ос
Вопрос:
Я хочу фиксировать события касания на Android wear (я использую Samsung Gear Live), чтобы нарисовать траекторию касания. Я попытался зафиксировать событие onTouch и событие onGenericMotionEvent в виде следующего кода, но событие запускается только один раз или иногда не происходит, когда я провожу пальцем по экрану. Мне нужно больше событий касания (по крайней мере, 5-6 событий, когда я провожу пальцем слева направо), чтобы нарисовать траекторию. Как я могу фиксировать достаточное количество событий касания на экране Android Wear?
@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;
}
});
}
});
}
Ответ №1:
Можете ли вы попробовать использовать только:
container.setOnTouchListener(new View.OnTouchListener() {
и return true
оттуда? Вам необходимо сообщить View
, что вы использовали событие.
Ответ №2:
Если вы хотите выполнять отладку в автономном режиме, вы можете получить координаты касания из adb:-
adb shell getevent