Quiero hacer una forma con la esquina redondeada superior izquierda y la esquina redondeada inferior izquierda:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#555555"/>
<stroke android:width="3dp"
android:color="#555555"
/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"
/>
<corners android:bottomRightRadius="0dp" android:bottomLeftRadius="2dp"
android:topLeftRadius="2dp" android:topRightRadius="0dp"/>
</shape>
Pero la forma de arriba no me dio lo que quiero. Me da un rectángulo sin esquinas redondeadas.
android
android-shape
user256239
fuente
fuente
Si bien esta pregunta ya ha sido respondida (es un error que hace que bottomLeftRadius y bottomRightRadius se inviertan), el error se ha corregido en Android 3.1 (api nivel 12 - probado en el emulador).
Por lo tanto, para asegurarse de que sus elementos de diseño se vean correctos en todas las plataformas, debe colocar las versiones "corregidas" de los elementos de diseño (es decir, donde los radios inferior izquierdo / derecho son realmente correctos en el xml) en la carpeta res / drawable-v12 de su aplicación. De esta manera, todos los dispositivos que usan una versión de Android> = 12 usarán los archivos de diseño correctos, mientras que los dispositivos que usan versiones anteriores de Android usarán los elementos de diseño de "solución alternativa" que se encuentran en la carpeta res / drawables.
fuente
values/dimens.xml
archivo predeterminado que contenga los valores bottom_left y bottom_right invertidos, y unvalues-v12/dimens.xml
archivo nuevo que tenga los valores correctos . De esa manera, puede mantener una sola versión del archivo XML dibujable y solo se intercambia el valor de la dimensión en función de la versión de la API.De la documentación :
Por ejemplo, tienes que configurar un
android:radius="<bigger than 1dp>"
para poder hacer lo que quieras:<corners android:radius="2dp" android:bottomRightRadius="0dp" android:topRightRadius="0dp"/>
fuente
También puede utilizar números extremadamente pequeños para su radio '.
<corners android:bottomRightRadius="0.1dp" android:bottomLeftRadius="2dp" android:topLeftRadius="2dp" android:topRightRadius="0.1dp" />
fuente
para otros, hay una solución para cualquier nivel de API, puede colocar un elemento encima de otro ejemplo:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- my firt item with 4 corners radius(8dp) --> <item> <shape> <solid android:angle="270.0" android:color="#3D689A" /> <corners android:topLeftRadius="8dp" /> </shape> </item> <!-- my second item is on top right for a fake corner radius(0dp) --> <item android:bottom="30dp" android:left="50dp"> <shape> <solid android:color="#5C83AF" /> </shape> </item> <!-- my third item is on bottom left for a fake corner radius(0dp) --> <item android:right="50dp" android:top="30dp"> <shape> <solid android:color="#5C83AF" /> </shape> </item> </layer-list>
el resultado con color claro para mostrarte los tres elementos:
el resultado final :
Atentamente.
fuente
Este error está archivado aquí . Este es un error de los dispositivos Android que tienen un nivel de API inferior a 12. Debe poner las versiones correctas de sus diseños en la carpeta drawable-v12 que se utilizará para el nivel de API 12 o superior. Y una versión errónea (esquinas cambiadas / invertidas) del mismo diseño se colocará en la carpeta de diseño predeterminada que utilizarán los dispositivos que tengan un nivel de API inferior a 12.
Por ejemplo: tuve que diseñar un botón con una esquina redondeada en la parte inferior derecha.
En la carpeta 'dibujable' - button.xml: tuve que redondear la esquina inferior izquierda.
<shape> <corners android:bottomLeftRadius="15dp"/> </shape>
En la carpeta 'drawable-v12' - button.xml: aquí se colocó la versión correcta del diseño para su uso en el nivel de API 12 o superior.
<shape> <corners android:bottomLeftRadius="15dp"/> </shape>
fuente
prueba esto
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/upkia"/> <corners android:radius="10dp" android:topRightRadius="0dp" android:bottomRightRadius="0dp" /> </shape>
fuente