java - Cómo poner ImageView encima de CardView en ConstraintLayout

CorePress2024-01-24  9

Quiero crear un diseño como este, pero no sé cómo colocar el fondo de CardView debajo de ImageView y luego configurar TextView debajo de la imagen. La imagen debe tener 300 dp de alto y 200 dp de ancho.

porque esa imagen no forma parte de la vista de la tarjeta, simplemente se extiende sobre ella.

-un_local_nadie

27/03/2021 a las 16:09

use otra tarjeta para colocar la vista de imagen y establezca una elevación más alta para esto.

- Prashant naik

27/03/2021 a las 16:20

Sé que no forma parte de cardview. ¿Cómo puedo establecer restricciones para cardview con textView y otra cardview para imagen? Debería superponerse igual que en el ejemplo anterior. Gracias de antemano.

-sirswistak

27/03/2021 a las 16:31



------------------------------------

Restringe la parte inferior y superior de tu primera tarjeta con la parte superior del segundo CardView, esto te permite alinear el centro de la primera vista de tarjeta con la parte superior del segundo CardView. y para que el First CradView quede arriba simplemente agregue una elevación mayor que la de la tarjeta de abajo

por ejemplo:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">

    <androidx.cardview.widget.CardView
        app:cardCornerRadius="15dp"
        android:id="@+id/bottomCard"
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:layout_margin="20dp"
        app:cardElevation="9dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias=".7">

    </androidx.cardview.widget.CardView>


    <androidx.cardview.widget.CardView
        app:cardElevation="10dp"

        app:cardBackgroundColor="@color/purple_700"
        app:cardCornerRadius="15dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toTopOf="@id/bottomCard"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@id/bottomCard">

        <ImageView
            android:id="@+id/image"
            android:layout_width="250dp"
            android:layout_height="300dp"
            android:background="@drawable/ic_android_black_24dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.cardview.widget.CardView>


</androidx.constraintlayout.widget.ConstraintLayout>

este es el resultado

1

1

el que hizo la pregunta me dijo que eso es lo que estoy buscando!. peroQuienquiera que me haya rechazado, por favor explíqueme por qué. o proponer una mejora

- Shay Kin

27/03/2021 a las 19:01



------------------------------------

debes usar app:cardElevation attr para la vista de tarjeta y usar android:elevation attr para otras vistas para hacer eso

Compartir mejorar esta respuesta SeguirRespondido

26 de abril de 2022 a las 13:50

7Clonador

7Clonador

51

1

1 insignia de bronce

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare