2011-12-17 6 views
5

Estoy tratando de tener un estirable forma con esta forma:mejor manera de manejar las diferencias de forma dibujable 2.3.5 Android vs 4.0

enter image description here

Esto funciona correctamente en 1.6 a 2.3.5 cuando se utiliza el siguiente:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<solid android:color="#cc6900"/> 

<corners android:radius="0.1dp" android:bottomRightRadius="7dp" android:bottomLeftRadius="0dp" 
android:topLeftRadius="0dp" android:topRightRadius="7dp"/> 

Sin embargo, cuando se ejecuta en un Galaxy Nexus, o un 4,0 emulador, tengo que usar esto para conseguir el mismo diseño:

... 
<corners android:radius="0.1dp" android:bottomRightRadius="0dp" android:bottomLeftRadius="7dp" 
android:topLeftRadius="0dp" android:topRightRadius="7dp"/> 
... 

Lo que me da en este 1.6:

enter image description here

Así que, básicamente, las versiones anteriores se ha utilizado toda bottomRight y bottomleft de una manera, y ahora 4.0 lo hace en otro.

¿Hay alguna manera fácil de que pueda ser como es para pre 4.0, y darles a los usuarios 4.0 los valores modificados? Si es posible, preferiría si pudiera mantenerlo en XML y no tenerlo en el código.

Respuesta

12

Hm, parece que rompimos la compatibilidad de errores cuando lo solucionamos. ;)

Como está definiendo esto en un XML dibujable, incluya la versión que funciona antes de Android 4.0 en su directorio res/drawable/ y la que funciona en Android 4.0+ en otro directorio llamado res/drawable-v14/. (14 es el nivel API de Android 4.0). Los dispositivos con Android 4.0 y versiones posteriores utilizarán la versión más nueva.

Se puede utilizar esta misma técnica para hacer que el sistema de auto-seleccionar el recurso correcto para un montón de diferentes opciones de configuración, ver aquí para más información: http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

+0

Brillante, soluciona el problema! –

Cuestiones relacionadas