android - studio - Creando una forma rectangular con solo dos bordes redondeados
redondear esquinas photoshop cc (7)
Puedo crear una forma que sea un rectángulo con todos los bordes redondeados. Sin embargo, lo que quiero es una forma de rectángulo con solo 2 de los bordes redondeados. es posible?
Básicamente estoy hackeando un ListView que parece una burbuja con bordes redondeados. Estoy buscando agregar un encabezado que tenga los dos bordes superiores redondeados y un pie de página con los dos bordes inferiores redondeados.
Cambié el atributo android:radius
a android:topRightRadius
y android:topLeftRadius
Creo que lo mejor (a mi entender de su pregunta) es crear una imagen de 9 parches y usarla como fondo, se puede definir para ampliarla según sea necesario y establecerla en el nivel XML guardando algo de trabajo de código
Dibuje un rectángulo redondeado y luego dibuje un rectángulo normal sobre el redondeado con el mismo color.
Intentaría dibujar un rectángulo redondeado y luego dos rectángulos adicionales del mismo tamaño que el radio de la esquina del rectángulo redondeado, y colocarlos en las esquinas que no desea redondear.
Entonces, por ejemplo, un rectángulo redondeado con un radio de 15px, y dos rectángulos regulares de 15x15px, colocados en las esquinas del rectángulo redondeado que no deben ser redondeados.
EDITAR: Al releer su pregunta, es mejor que haga una imagen simple de 9 parches para la parte superior e inferior de su vista de lista. Se extenderían a cualquier tamaño de esa manera sin pixelización. Sin embargo, eso requerirá que crees las imágenes de antemano, y hacer cosas con las formas rectangulares sería más fácil de modificar en el código más adelante. Sin embargo, la forma de 9 parches sería menos de un hack.
Puede que te resulte útil.
<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/rounded_edittext.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
Este código solo funciona (¿desde?) Android versión 2.2. Refiriéndose a la documentation , el código debe ser similar al siguiente:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners
android:radius="2dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
Usa el código de arriba