Как отследить нажатие на экран в java если у меня нет View, а объекты я рисую на canvas
Как отследить нажатие на экран если у меня не используется Xml и я рисую все на canvas в классе GameView? Заранее спасибо.
Ответы (3 шт):
Автор решения: Komdosh
→ Ссылка
Можете переопределить метод onTouchEvent в View
@Override
public boolean onTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
break;
}
case MotionEvent.ACTION_MOVE: {
break;
}
case MotionEvent.ACTION_UP: {
break;
}
case MotionEvent.ACTION_CANCEL: {
break;
}
case MotionEvent.ACTION_POINTER_UP: {
break;
}
}
return true;
}
Автор решения: Barmaley
→ Ссылка
Попробуйте Activity.onUserInteraction() - работает при любом нажатии в пределах Activity, можно также Activity.onTouchEvent() - но он вызывается только если не обработано касание в View внутри Activity
Автор решения: Tiarait
→ Ссылка
Неизвестно что за либа и что с себя представляет GameView, по этому точного ответа не будет. Но если у вас есть доступ к активности тогда вы можете получить доступ и к родительскому View. К примеру
getActivity().findViewById(android.R.id.content).getRootView()
или
getActivity().getWindow().getDecorView().findViewById(android.R.id.content)
или
getActivity().getWindow().getDecorView().getRootView()
Ну а даль к полученному view добавить ваш слушатель .setOnTouchListener()