Живые обои на Android 1.6 приложения - PullRequest
1 голос
/ 26 марта 2010

У меня есть приложение Android с версией 1.6 Я беру обои и показываю их в своем заявлении. (Я делаю это программно, вызывая getWallpaper () в Activity)

Когда он установлен на телефоне 2.1 с живыми обоями, они не возвращаются живыми обоями getWallpaper (), потому что он просто возвращает Drawable, а живые обои, вероятно, совсем другое дело.

Так вот вопрос, возможно ли показывать живые обои на фоне приложения 1.6? Как?

Спасибо

=============================================== =========================================

Пока я не нашел решения для этого. Я добавляю это, чтобы лучше понять вопрос

Для ясности: приложение написано для 1.6, поэтому оно будет работать на всех 1.6 и выше. Вопрос в том, можем ли мы написать приложение с 1.6 в качестве цели, но поддерживать живые обои, если оно запускается на устройстве 2.1 ??

Спасибо

Ответы [ 3 ]

2 голосов
/ 09 апреля 2010

Я нашел решение:

1) С помощью android.os.Build.VERSION.SDK_INT проверьте, какая версия телефона. 2) делать вызовы if / else, поэтому для каждой версии вы можете вызвать нужный метод. В этом случае:

if (android.os.Build.VERSION.SDK_INT> = 7) {

this.setTheme (android.R.style.Theme_Wallpaper);

}

еще

{

// что-то еще

}

3) Создайте приложение, используя 2.1. и установить в манифесте использует-sdk android: minSdkVersion = "4", поэтому он также работает на 1.6

4) убедитесь, что он работает на обоих телефонах 1.6 и 2.1, поскольку, поскольку у вас есть вызовы на оба SDK, убедитесь, что вы не вызываете методы 2.1, когда работаете в 1.6 и наоборот.

Спасибо за помощь

1 голос
/ 26 марта 2010

Живые обои были добавлены в 2.1, поэтому просто не имеет смысла показывать живые обои на устройстве 1.6 (или 2.0).

В 2.0 был добавлен стиль темы Theme.Wallpaper, который в качестве нового официального способа поместить действие (или окно) поверх обоев системы (живых или нет). Конечно, так как это появилось в 2.0, вы также не можете использовать это в 1.6.

До версии 2.0 единственным способом отображения поверх системных обоев было использование getWallpaper () для извлечения статического изображения обоев и самостоятельного отображения его в пользовательском интерфейсе. Это, конечно, не поддерживает живые обои.

Если вы хотите, чтобы приложение отображалось в обоях на платформах до 2.0 и 2.0 и более поздних версиях, вам необходимо проверить версию API в android.os.Build и соответствующим образом настроить свое поведение: при инициализации вашей активности, если 2.0 или более поздняя версия, используйте setTheme, чтобы выбрать тему обоев; в противном случае, получите drawable и сделайте его фоном вашего пользовательского интерфейса. При использовании темы обоев вам нужно убедиться, что ваш пользовательский интерфейс не рисует поверх него непрозрачный фон, и скрыть его. Вы также можете попытаться установить тему своей деятельности в Theme.Translucent, чтобы улучшить поведение в версии 2.0 или более поздней (в идеале вы должны использовать Theme.Wallpaper, которая также дает вам подходящую анимацию).

На самом деле, вы можете использовать версионные ресурсы для создания своей собственной темы, которая корректируется в зависимости от версии платформы (либо обои, либо традиционная тема). Впрочем, я никогда не пытался это сделать.

0 голосов
/ 26 марта 2010

Вы пытались использовать Theme.Wallpaper в качестве темы своей деятельности? Это устанавливает обои телефона в качестве фона действия и работает с живыми обоями.

...