#livewallpaper #android #java
В ОС 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!"); //.. } } } В логе события просто никак не регистрируется. Установленная в эмуляторе обоина просто висит фоном, но не реагирует на события. Подскажите возможные упущения или нет вообще таковой возможности как реагировать на разные события "Живым Обоям"?
Ответы
Ответ 1
Вся проблема похоже в свойстве setTouchEventsEnabled, которое по умолчанию false :-).Ответ 2
Такое конечно же возможно. Сам не разбирался, но нагуглил вот это: StackOverflow Добавлю парочку моментов: Для реализации обоин можно использовать плагин к игровому движку AndEngine. Получается гораздо меньше кода. Посмотрите пример обоины в доке: Тыц
Комментариев нет:
Отправить комментарий