冰淇淋三明治推出了很多新的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. 如何保持兼容性与Android NDK
- 4. Android地图API v2向后兼容性
- 5. 如何在android api level 23 ui中保持android api level 19单选按钮?
- 6. 可能使用SaveVideoAtPathToSavedPhotosAlbum并仍保持3.0向后兼容性?
- 7. 方式,也必须保持其向后兼容性休息
- 8. 如何支持向后兼容2.3.4
- 9. aspnet-api-versioning - 向后兼容性
- 10. Android:是否可以在android 4.0.4(api level 15)上使用MediaCodec?
- 11. 向后兼容Android
- 12. 保持向后兼容性的多继承序列化
- 13. 暧昧方法定义,但要保持向后兼容性
- 14. Android中的功能向后兼容性
- 15. 向后兼容BackupAgent
- 16. maven;如何打破向后兼容性?
- 17. 如何在PHP中扩展接口并保持向后兼容性?
- 18. 如何实现新的Android选择模式,同时保持与Android 2.x的向后兼容性?
- 19. 在Android中使用反射以实现向后兼容性
- 20. 确保向后兼容性的API设计
- 21. 如何确保URL重写后的向后兼容性?
- 22. 向后兼容性play-1.2.3
- 23. Android的向后代码兼容性
- 24. WP7.1向后兼容性
- 25. C#的向后兼容性
- 26. GCC向后兼容性
- 27. XSD向后兼容性
- 28. pandas.DataFrame.to_pickle向后兼容性
- 29. 向后兼容性dll
- 30. Xcode向后兼容性
对于材质设计,我会添加:https://developer.android.com/training/material/theme.html – 2014-10-31 10:33:32