2012-04-10 22 views
10

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

10

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.

+0

Para Material Design, agregaría: https://developer.android.com/training/material/theme.html –

3

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.

Cuestiones relacionadas