Как установить тему ICS для приложения с minSDK 7?

может ли кто-нибудь сказать мне, как я могу установить тему для своего приложения, которая изменится, когда изменится версия Android. Например, если кто-то будет использовать мое приложение на Android 2.1, тема будет выглядеть так: http://daily-money.googlecode.com/svn/wiki/img/prefs.png

Но если кто-нибудь будет использовать мое приложение, например, на Android 4.0.3, тема будет выглядеть так: http://img.tapatalk.com/dcff019c-27ba-1e1a.jpg Я использовал minSDK 7.

Спасибо.


person Adam    schedule 04.01.2012    source источник


Ответы (3)


Что вам нужно, подробно описано на этой странице: http://android-developers.blogspot.com/2012/01/holo-everywhere.html

В разделе «Значения по умолчанию для старых приложений»

Вы устанавливаете 2 файла темы, один в каталоге значений и один в каталоге значений-v11. Затем вы ссылаетесь на этот файл темы в файле Manifest. Как указано на странице, на которую я ссылался выше. Вам нужны ВСЕ ТРИ блока XML, указанные на этой странице в разделе «Использование Holo при поддержке Android 2.x».

person Mark B    schedule 04.01.2012
comment
Я пробовал это до того, как написал сюда, и это не сработало, но я не знаю, правильно ли я его использовал. Должен ли я добавлять его только в манифест или только в styles.xml или в оба файла? - person Adam; 05.01.2012
comment
Оба, посмотрите дополнительные материалы, которые я добавил к своему ответу. - person Mark B; 05.01.2012
comment
Я не могу добавить эту строку в /res/values-v11/themes.xml, он пишет эту ошибку, я думаю, что это из-за minSDK 7. ошибка: Ошибка при получении родителя для элемента: не найден ресурс, соответствующий заданному имени ' @android:style/Theme.Holo'. - person Adam; 05.01.2012
comment
Вы должны установить целевой SDK на что-то 11 или выше (Android 3.0 или выше) в настройках Eclipse Android. - person Mark B; 05.01.2012
comment
Да, вы правы, мне пришлось установить свой project.properties на 13, теперь он работает, большое спасибо :) - person Adam; 05.01.2012
comment
Может ли это запустить приложение с темой ICS на устройствах 2.x или просто совместимо со старой темой? - person shiami; 28.03.2012

сначала получите версию Android, работающую на устройстве:

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

....

en после того, как вы можете использовать setTheme(..) перед вызовом setContentView(...) и super.oncreate(), и он должен работать нормально

person letroll    schedule 04.01.2012

@letroll, какой параметр вы передаете в setTheme? Требуется ли увеличить min sdk до 13, чтобы сделать SDK доступным?

person user1076637    schedule 08.01.2012