Intereting Posts
Phonegap android добавить windowSoftInputMode с помощью config.xml Как исправить ошибку в размере растрового изображения превышает бюджет VM Eclipse Отладка Android не работает Firebase 2.0 – как бороться с несколькими вкусами (средами) приложения Android? Запись скринкаста приложения для Android с использованием эмулятора Android – как сохранить перечисление от proguard Прямоугольный предмет с нажатым синим фоном Архитектура Android-приложения – куда поместить код вызова REST API? Написание сценария Gradle для запуска модульных тестовых примеров для проекта Eclipse Android Test Нажатие панели инструментов на панели состояния Не удалось отладить приложение cordova из-за adb.exe Как использовать Google Place Check-Ins для Android Как приостановить и возобновить запись звука в android Черный экран появился, когда приложение запустилось в телефоне в андроиде перед экраном всплеска? Должен ли я использовать два профиля в GA для отслеживания приложений Android и iOS

Как обеспечить различные виджеты Android для 1.6 и 3.0+?

Я ориентируюсь на 1.6, но я бы хотел иметь хороший виджет, который может использовать stackview и другие улучшения. SDK для Android обеспечивает виджет, если пользователь находится на устройстве выше 3.0. И простой виджет на 1.6-2.3 /

Как мне сделать эту две версии виджета?

большое спасибо

Моя рекомендация:

Создайте две версии виджета приложения и используйте метод значений ресурсов для включения / отключения.

В res / values ​​/ bools.xml:

<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="atLeastHoneycomb">false</bool> <bool name="notHoneycomb">true</bool> </resources> 

В res / values-v11 / bools.xml:

 <?xml version="1.0" encoding="utf-8"?> <resources> <bool name="atLeastHoneycomb">true</bool> <bool name="notHoneycomb">false</bool> </resources> 

В AndroidManifest.xml:

 <receiver android:name="MyOldAppWidgetProvider" android:enabled="@bool/notHoneycomb"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_oldappwidget_info" /> </receiver> <receiver android:name="MyNewAppWidgetProvider" android:enabled="@bool/atLeastHoneycomb"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_newappwidget_info" /> </receiver> 

Вы можете создавать вспомогательные папки в вашем уровне API каталогов res , добавив суффикс типа -v11 .

Например, предположим, что ваш макет называется main.xml . У вас может быть ваш файл main.xml в папке layout , а затем добавить новый, причудливый файл main.xml который включает ваш новый виджет в папке layout-v11 . При использовании Honeycomb и up, расположение в папке -v11 будет выбрано, если вы ссылаетесь на свой файл, например, R.layout.main .

Оттуда у вас может быть какая-то логика в вашей деятельности, которая проверяет наличие вашего нового объекта виджета (или просто проверяет класс Build.VERSION ) и ветви соответственно.

Для получения дополнительной информации об этом ознакомьтесь с правилами имени классификатора из документации по Android.

Вы можете проверить версию api устройства, например:

int apiLevel = android.os.Build.VERSION.SDK_INT;

Из apiLevel вы можете использовать if-else для загрузки разных макетов / представлений для разных apis /