Android: las esquinas de forma no funcionan al configurar las esquinas individuales

Necesito tener un fondo que ha redondeado inferior izquierda / derecha coners (pero no superior izquierda / derecha), a continuación es mi archivo xml:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle" android:padding="1dp"> <solid android:color="#FFbdbebd"/> <corners android:bottomLeftRadius="12dip" android:bottomRightRadius="12dip" android:topLeftRadius="0dip" android:topRightRadius="0dip"/> </shape> </item> </layer-list> 

Pero el resultado es un rectángulo llano sin ninguna esquina redondeada, si sólo utilizo:

 android:radius="12dip" 

Entonces todas las esquinas son redondeadas, busqué y encontré un error relacionado con esto:

Http://code.google.com/p/android/issues/detail?id=9161

Pero el error indica:

Izquierda / derecha se cambia, porque android: bottomRightRadius = "2dp" resultó especificar esquina inferior izquierda-redondeada.

Que no puede ser relavent a mi problema, también traté de usar:

 android:radius="12dip" 

seguido por

 android:topLeftRadius="0dip" android:topRightRadius="0dip" 

sin éxito.

¿Alguien puede ayudar? ¡Gracias!

Parece ser un problema conocido. Cada esquina debe ser> 1 o bien no se redondearán las esquinas. Según la documentación de Android se puede hacer, pero es una especie de hacky:

Nota: Cada esquina debe (inicialmente) ser proporcionada un radio de esquina mayor que 1, o bien no hay esquinas redondeadas. Si desea que las esquinas específicas no se redondeen, una solución es usar android: radio para establecer un radio de esquina predeterminado mayor que 1, pero luego anular cada esquina con los valores que realmente desea, proporcionando cero ("0dp" ) Donde no desea> esquinas redondeadas.

Vea aquí: http://developer.android.com/guide/topics/resources/drawable-resource.html#corners-element

Cambia esto:

  <corners android:bottomRightRadius="12dp" android:bottomLeftRadius="12dp" android:topLeftRadius="0dp" android:topRightRadius="0dp"/> 

a esto:

  <corners android:radius="1dp" android:bottomRightRadius="12dp" android:bottomLeftRadius="12dp" android:topLeftRadius="0dp" android:topRightRadius="0dp"/> 

Y debería estar funcionando como se esperaba.

He encontrado que puede haber un error que si se establecen las esquinas individuales, y si alguno de ellos es 0, todos ellos se convierten en 0, por lo que al final he puesto dos de ellos a 1dip y otros dos a lo que necesito, como ninguno de Ellos es 0, por lo que el error no lo afecta y el resultado se ve bien.

Prueba esto su trabajo para mí.

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="10dp"> <solid android:color="#FFFFFF"/> <corners android:bottomRightRadius="30dp" android:bottomLeftRadius="30dp" android:topLeftRadius="30dp" android:topRightRadius="30dp"/> </shape> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.