2012-04-10 48 views
10

冰淇淋三明治推出了很多新的UI設計元素,但市場滲透率仍然只有4%左右。如果有人想要面向未來的應用,並利用蜂窩/冰淇淋三明治中引入的一些設計元素,例如操作欄,配色方案等,確保您保持一定程度的倒退的最佳方法是什麼兼容性?如何在使用Android API Level 15時保持向後兼容性?

回答

10

雖然我同意@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.htmlHow 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引用它們。雖然這不是你的問題,但確實有助於提供一致性。

+0

對於材質設計,我會添加:https://developer.android.com/training/material/theme.html – 2014-10-31 10:33:32

3

這是一個非常非常廣泛的話題。答案根據您嘗試使用的具體元素而有所不同。

- 對於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的值訪問它們。

相關問題