Tenía esto dibujable para tener un rectángulo redondeado como fondo:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:radius="6dp" />
</shape>
Esto está funcionando bien, como se esperaba.
Ahora, quiero cambiar esto solo para redondear las esquinas superiores, así que lo cambio a esto:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
</shape>
Pero ahora ninguna de las esquinas son redondeadas y obtengo un rectángulo liso. ¿Que me estoy perdiendo aqui?
android
drawable
rounded-corners
Aleks G
fuente
fuente
Respuestas:
Intenta dar estos valores:
Tenga en cuenta que he cambiado
0dp
a0.1dp
.EDITAR: Vea el comentario de Aleks G a continuación para obtener una versión más limpia
fuente
<corners android:radius="1dp" android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
esto produce esquinas de fondo perfectamente cuadradas sin siquiera un toque de redondeo. Sin embargo, su solución funciona más o menos.android:radius="1dp"
Intenta hacer algo como esto:
Parece que no es adecuado establecer diferentes radios de esquina del rectángulo. Entonces puedes usar este truco.
fuente
En mi caso debajo del código
fuente
Sobre la base de la respuesta del busylee , así es como puede hacer un
drawable
que solo tenga una esquina no redondeada (arriba a la izquierda, en este ejemplo):Tenga en cuenta que lo anterior
drawable
es que no se muestra correctamente en la vista previa de Android Studio (2.0.0p7). Para obtener una vista previa de todos modos, cree otra vista y úsela comoandroid:background="@drawable/..."
.fuente
Probé su código y obtuve un botón de esquina superior redondeada. Di los colores como
@ffffff
y trazo que di#C0C0C0
.tratar
fuente
Puede que necesites leer esto https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
y debajo hay una nota.
Nota Cada esquina debe (inicialmente) tener un radio de esquina mayor que 1, de lo contrario no se redondeará ninguna esquina. Si desea que las esquinas específicas no se redondeen, una solución alternativa es usar android: radius 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 quieres esquinas redondeadas.
fuente
Cree roung_top_corners.xml en drawable y copie el siguiente código
fuente