es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo crear un diseño con esquinas redondeadas solo en la mitad superior o inferior.

Estoy tratando de agregar elementos de fila a un RecyclerView que se ve así:

Imagen

El diseño de la vista tiene 2 versiones; una con una imagen en la mitad superior y otra que solo contiene texto. Algunas cosas hacen que este diseño sea complicado de crear:

  1. La imagen solo está redondeada en la parte superior.
  2. La mitad inferior del TextView solo está redondeada en la parte inferior.
  3. Si la ImageView no está visible, entonces el TextView tiene las esquinas superiores redondeadas.

Preferiría tener solo un diseño de fila y diseñarlo en XML. ¿Es posible, o necesito crear este diseño en código?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Android, android-recyclerview y android-viewholder, es posible crear el diseño deseado en XML. Se puede utilizar una combinación de “shape drawables” y “layer-list drawables” para lograr el efecto de esquinas redondeadas tanto para la imagen como para el TextView. Además, se puede usar el atributo de visibilidad para mostrar u ocultar la imagen según sea necesario.

    Aquí hay un ejemplo de cómo podría ser el diseño XML:

    <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:background="@drawable/rounded_background" android:padding="16dp">
    
        <imageview android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="200dp" android:scaletype="centerCrop" android:src="@drawable/sample_image" android:visibility="visible"></imageview>
    
        <textview android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/imageView" android:background="@drawable/rounded_bottom_background" android:padding="16dp" android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit."></textview>
    
    </relativelayout>
    

    En este diseño, RelativeLayout sirve como el contenedor tanto para la imagen como para el TextView. El atributo de fondo está configurado con un recurso drawable que define las esquinas redondeadas para todo el diseño.

    La ImageView está restringida en la parte superior del diseño y tiene su atributo de visibilidad configurado como “visible”. Si desea ocultar la imagen, puede configurar su atributo de visibilidad como “gone” en su lugar.

    El TextView está restringido por debajo de la ImageView y tiene su atributo de fondo configurado con un recurso drawable que define las esquinas redondeadas solo para la mitad inferior. Además, se agrega un padding para darle al texto un poco de espacio.

    Al configurar el atributo de visibilidad de la ImageView según sea necesario, se puede controlar si el diseño muestra la imagen o no sin tener que crear múltiples archivos de diseño.

Comments are closed.