冰淇淋三明治推出了很多新的UI設計元素,但市場滲透率仍然只有4%左右。如果有人想要面向未來的應用,並利用蜂窩/冰淇淋三明治中引入的一些設計元素,例如操作欄,配色方案等,確保您保持一定程度的倒退的最佳方法是什麼兼容性?如何在使用Android API Level 15時保持向後兼容性?
回答
雖然我同意@Ollie C,但我認爲除了僅僅使用Actionbar Sherlock庫之外,還有其他一些選擇可以添加,同時說我積極參與ABS社區,並且認爲它是真正有用的並且包含所有的UI資產可能都需要。
您可以通過API級別查看UI組件的優雅退化。因此,例如:
你可以在values
文件夾中創建和設置樣式像這樣
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Any customizations for your app running on pre-3.0 devices here -->
</style>
</resources>
然後針對Android 3.0+設備,創建文件夾values-v11
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
<!-- Any customizations for your app running on 3.0+ devices here -->
</style>
</resources>
併爲4.0+設備,創建values-v14
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
<!-- Any customizations for your app running on 4.0+ devices here -->
</style>
</resources>
REF:http://android-developers.blogspot.co.uk/2012/01/holo-everywhere.html,How to use Holo.Light theme, and fall back to 'Light' on pre-honeycomb devices?
還有這個項目:https://github.com/ChristopheVersieux/HoloEverywhere,它試圖帶來holo主題。
最後; Google鼓勵開發人員從SDK中包含UI組件,以幫助解決向後兼容性問題,而不是直接從Android OS引用它們。雖然這不是你的問題,但確實有助於提供一致性。
http://www.actionbarsherlock.com
這(免費)庫的輝煌,併爲您提供在找什麼先前的Android版本。
這是一個非常非常廣泛的話題。答案根據您嘗試使用的具體元素而有所不同。
- 對於ActionBar:如果你想在早期版本中使用ActionBar,ActionBarSherlock是一個從Android支持庫擴展而來的流行免費庫。
- 對於Color scheme/theme:如this SO thread所述,爲每個樣式創建res/values/styles.xml和res/values-v11/styles.xml(例如,稱爲「myStyle」)選擇一個相關的家長。對於V11,它可能是「Theme.Holo」,其他的可能是「Theme.Dark」。添加您想要的任何自定義主題。在你的清單中引用自定義主題,並根據設備的平臺版本選擇正確的一個(values-v11文件夾將用於蜂窩和以上,另一個用於薑餅和以下)
- 對於其他平臺功能,您可以將平臺特定功能封裝在單獨的類中,並根據android developer blog上的說明,根據Build.VERSION.SDK的值訪問它們。
- 1. Android:如何保持向後兼容性?
- 2. 如何使用MediaSessionCompat並保持與RemoteControlClient的向後兼容性?
- 3. JVM運行時如何保持向後兼容性?
- 4. 如何保持兼容性與Android NDK
- 5. Android地圖API v2向後兼容性
- 6. 如何在android api level 23 ui中保持android api level 19單選按鈕?
- 7. ActionBar兼容性問題與API 15
- 8. 如何避免不推薦使用的方法並保持向後兼容性?
- 9. 可能使用SaveVideoAtPathToSavedPhotosAlbum並仍保持3.0向後兼容性?
- 10. 爲Java 8增強庫,同時保持向後兼容性
- 11. 設計新API但保持兼容性
- 12. 如何支持向後兼容2.3.4
- 13. 方式,也必須保持其向後兼容性休息
- 14. aspnet-api-versioning - 向後兼容性
- 15. iOS 6 API和向後兼容性
- 16. 如何在android api level 9+中的MapActivity中顯示兼容性操作欄?
- 17. Android:是否可以在android 4.0.4(api level 15)上使用MediaCodec?
- 18. 測試向後兼容性?
- 19. 保持與我的對象數據庫的向後兼容性?
- 20. Android Immersive模式和向後兼容性
- 21. 保持向後兼容性的多繼承序列化
- 22. 曖昧方法定義,但要保持向後兼容性
- 23. 向後兼容Android
- 24. 如何使ICS應用程序(API 15)與Jellybean(API 16)兼容?
- 25. 如何保持與2.3.3的兼容性android
- 26. maven;如何打破向後兼容性?
- 27. 向後兼容BackupAgent
- 28. Android中的功能向後兼容性
- 29. 如何在PHP中擴展接口並保持向後兼容性?
- 30. NDEF向後兼容(Android Beam)
對於材質設計,我會添加:https://developer.android.com/training/material/theme.html – 2014-10-31 10:33:32