Страницы

Поиск по вопросам

суббота, 6 июля 2019 г.

LiveWallpaper, реагирующий на касания

В ОС Android вообще можно реализовать LiveWallaper, реагирующий на касания экрана? По идее, метод public void onTouchEvent(MotionEvent event) для переопределения у него есть. Написал простенькую заготовку. Никакой реакции на касания. Метод просто не выполняется. Приведу свой класс-наследник LiveWallpaper'а: package com.topsher.indicator;
import android.graphics.Rect; import android.service.wallpaper.WallpaperService; import android.util.Log; import android.view.MotionEvent; import android.view.SurfaceHolder;
public class IndicatorBlocksWallpaper extends WallpaperService {
private Rect surf; private Painter mPainter; private String TAG = "IndicatorBlockWallpaper"; @Override public Engine onCreateEngine() { // TODO Auto-generated method stub return new MyEngine(); }
class MyEngine extends Engine { @Override public void onSurfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub holder.getSurfaceFrame(); super.onSurfaceCreated(holder); mPainter = new Painter(holder, getApplicationContext()); mPainter.start(); //mPainter.drawIndicator(); // mPainter.runMotion(); //mPainter.start();
}
@Override public void onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub super.onTouchEvent(event); //.. Log.d(TAG, "new Touch Event!"); //.. }
} } В логе события просто никак не регистрируется. Установленная в эмуляторе обоина просто висит фоном, но не реагирует на события. Подскажите возможные упущения или нет вообще таковой возможности как реагировать на разные события "Живым Обоям"?


Ответ

Вся проблема похоже в свойстве setTouchEventsEnabled, которое по умолчанию false :-).

Комментариев нет:

Отправить комментарий