Ice Cream Sandwich introdujo una gran cantidad de elementos nuevos de diseño de interfaz de usuario, pero la penetración en el mercado sigue siendo solo del 4% aproximadamente. Si uno quisiera probar su aplicación en el futuro y utilizar algunos de los elementos de diseño introducidos con Honeycomb/Ice Cream Sandwich, como la barra de acción, el esquema de colores, etc., ¿cuál sería la mejor manera de asegurarse de mantener un mínimo de retroceso? ¿compatibilidad?¿Cómo mantener la compatibilidad con versiones anteriores mientras utilizas Android API Level 15?
Respuesta
Aunque estoy de acuerdo con @Ollie C, creo que hay otras opciones para agregar que no sea sólo el uso de la biblioteca actionbar Sherlock, mientras que decir esto, participar activamente en la comunidad de ABS y de acuerdo en que es
fantasmagoricly
realmente útil y contiene todos los activos de IU probablemente serán necesarios.
Puede observar la degradación gradual de los componentes de la interfaz de usuario a través de los niveles de la API. Así, por ejemplo:
Se puede crear en la carpeta values
y establecer el estilo como por lo
<?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>
Entonces para dispositivos Android 3.0+, crear values-v11
carpeta:
<?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>
Y para 4.0+ dispositivos, crear 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?
También existe este proyecto: https://github.com/ChristopheVersieux/HoloEverywhere que intenta traer el tema holo.
Finalmente; Google alienta a los desarrolladores a incluir componentes de interfaz de usuario del SDK para ayudar con el problema de la compatibilidad con versiones anteriores, en lugar de hacer referencia a ellos directamente desde el sistema operativo Android. Si bien esta no es su pregunta, sí ayuda a proporcionar cierta consistencia.
http://www.actionbarsherlock.com
Esta biblioteca (libre) es brillante, y ofrece lo que busca en las versiones anteriores de Android.
Este es un tema muy, muy amplio. Las respuestas varían según el elemento específico que intentes usar.
-Para la Barra de acciones: Si desea una Barra de acciones en versiones anteriores, ActionBarSherlock es una biblioteca gratuita popular que se extiende desde la biblioteca de soporte de Android.
-Para el esquema/tema de color: como se describe en this SO thread, cree un res/values / styles.xml y res/values-v11/styles.xml, (por ejemplo, llamado "myStyle"), para cada estilo elige un padre relevante Para V11, probablemente sería "Theme.Holo", mientras que para el otro, probablemente "Theme.Dark". Agregue las personalizaciones que desee a los temas. Haga referencia a ese tema personalizado en su manifiesto, y se elegirá el correcto según la versión de plataforma del dispositivo (la carpeta values-v11 se usará para Honeycomb y arriba, la otra para Gingerbread y abajo)
-Para otro características de la plataforma, puede encapsular la funcionalidad específica de la plataforma en clases separadas y acceder a ellas en función del valor de Build.VERSION.SDK, como se describe en el android developer blog.
- 1. Mejores prácticas para la compatibilidad con versiones anteriores de API
- 2. Deserialización compatibilidad con versiones anteriores
- 3. ¿Cómo puedo evitar los métodos en desuso y mantener la compatibilidad con versiones anteriores?
- 4. Temas de Android Holo con compatibilidad con versiones anteriores
- 5. Windows API Codepack Compatibilidad con versiones anteriores en Windows XP
- 6. iOS 6 API y compatibilidad con versiones anteriores
- 7. Versiones de clase para admitir la compatibilidad con versiones anteriores
- 8. Compatibilidad con versiones anteriores y servicios web
- 9. ISerializable y compatibilidad con versiones anteriores
- 10. MS Office PIAs "compatibilidad con versiones anteriores"
- 11. ¿Compatibilidad con versiones anteriores o posteriores en Android?
- 12. .lib y .dll Compatibilidad con versiones anteriores
- 13. Integración de Kiosco sin romper la compatibilidad con versiones anteriores
- 14. Renombrado de funciones con preservación de compatibilidad con versiones anteriores
- 15. ¿Cómo puedo probar la compatibilidad con versiones anteriores de la API entre los ensamblados de .NET
- 16. Compatibilidad con versiones anteriores de Java 6 Source y SQL
- 17. Compatibilidad con versiones anteriores en .NET con BinaryFormatter
- 18. Estrategias para Honeycomb y compatibilidad con versiones anteriores
- 19. ¿Cuán importante es la compatibilidad con versiones anteriores?
- 20. Diseño de la API que garantiza la compatibilidad con versiones anteriores
- 21. Compatibilidad con versiones anteriores de SQL Server en Entity Framework?
- 22. WCF Service - Problema de compatibilidad con versiones anteriores
- 23. Compatibilidad con versiones anteriores del repositorio de Git
- 24. DialogFragments with devices api level <11
- 25. ¿Las API de Java Servlet son compatibles con versiones anteriores?
- 26. Android Equalizer para API Level <9
- 27. Diseño API: mejores prácticas y compatibilidad con múltiples versiones
- 28. ¿Cómo se puede separar limpiamente el código de compatibilidad con versiones anteriores del código principal?
- 29. Compatibilidad con versiones anteriores de la serialización de vector (de) con Boost.serialization
- 30. ¿Puede eliminar la finalización de una definición de clase romper la compatibilidad con versiones anteriores?
Para Material Design, agregaría: https://developer.android.com/training/material/theme.html –