Предотвратить изменение ориентации Live Wallpaper при открытии приложения и изменении ориентации? - PullRequest
11 голосов
/ 07 декабря 2010

У меня проблема с ориентацией на Live Wallpaper, которую я написал.В основном холст будет вращаться в зависимости от приложения, открытого над ним.Я проверил это и понял, что метод onSurfaceChanged () срабатывает, когда я возвращаюсь на домашний экран из ранее открытого приложения, ориентация которого была изменена.Поверхность Live Wallpaper Изменить, когда приложение открыто и изменена его ориентация? Есть ли способ предотвратить изменение ориентации моих Live Wallpaper?Спасибо, надеюсь, что имеет смысл?

Ответы [ 2 ]

1 голос
/ 27 октября 2014

Вы можете управлять ориентацией экрана из класса android.service.wallpaper.WallpaperService. Engine класса следующим способом:

public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)

... просто обработайте событие соответственно.

Вы НЕ МОЖЕТЕ добавить android: configChanges or android: screenOrientation к службе WallpaperService! (Который вы используете при создании живых обоев)

Я бы добавил это как комментарий к ответу "Анирудхи", но у меня недостаточно репутации, чтобы сделать это.

1 голос
/ 13 января 2013

Приложение Android перезапускает активность, когда меняется ориентация. Вы можете использовать

  1. android: configChanges в вашем манифесте. Действие отключается и перезапускается по умолчанию, когда изменение конфигурации происходит во время выполнения, но объявление конфигурации с этим атрибутом предотвратит перезапуск действия. Вместо этого действие продолжает выполняться, и вызывается его метод onConfigurationChanged().
  2. использование android: screenOrientatin = " Portrait " или " landscape " - приложение принудительно будет работать в указанном вами режиме Однако это не помешает завершению и перезапуску активности.
...