2010-10-14 19 views
25

Puedo crear una forma que sea un rectángulo con todos los bordes redondeados. Sin embargo, lo que quiero es una forma rectangular con solo 2 de los bordes redondeados. es posible?Crear una forma de rectángulo con solo dos bordes redondeados

Básicamente, estoy pirateando 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.

Respuesta

14

Cambié el atributo android:radius a android:topRightRadius y android:topLeftRadius

+1

se verá perfecto después de ejecutar la aplicación. –

-1

Dibuja un rectángulo redondeado y luego dibuja un rectángulo normal sobre el redondeado del mismo color.

0

Trataré de 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.

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 redondearse.

EDIT: Volviendo a leer su pregunta, es mejor que haga una imagen simple de 9 parches para la parte superior e inferior de su lista de lista. Se extenderían a cualquier tamaño de esa manera sin pixelización. Sin embargo, eso requeriría crear las imágenes de antemano, y hacer las cosas con las formas rectangulares sería más fácil de modificar en el código más adelante. Sin embargo, el modo de 9 parches sería menos de un truco.

+0

... además: usted tiene que dibujar no sólo es uno de nueve parche, pero diferentes que abarcan diferentes densidades de pantalla. Eso lo hace más complejo de lo necesario. Preferiría hacerlo en código y adaptar el radio del círculo en píxeles dependiendo del tamaño del rectángulo. – Zordid

2

Creo que la mejor (a mi entendimiento de su pregunta) es la creación de una imagen de 9patch y utilizarlo como fondo - se puede definir para estirar como sea necesario y establecer a nivel XML ahorrar algo de código de trabajo

17

Puede que le sea ú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> 
+0

No hay ningún atributo de relleno en la forma –

+0

se verá perfecto después de ejecutar la aplicación. –

1
<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> 

Usar el código anterior

38
<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 es simplemente trabajando (ya?) Versión 2.2 de Android. Refiriéndose a la documentation, el código debería 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> 
+5

En mi caso, no se muestra correctamente en el editor xml. Ejecute su código para verlo correctamente. –

+2

Para mí también, parece que el editor xml no respeta las esquinas con diferentes radios. – WindRider

+0

se verá perfecto después de ejecutar la aplicación. –

Cuestiones relacionadas