Crear vista sobre cardview en android

Quiero crear este diseño
Introduzca aquí la descripción de la imagen

Esto es un cardview (visión gris) y el imageview (opinión azul) para eso yo utiliza este código

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/abc_search_url_text_normal" android:orientation="vertical"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="100dp" android:layout_alignParentBottom="true" android:layout_gravity="bottom" android:layout_marginBottom="3dp" android:paddingTop="5dp" app:cardBackgroundColor="@color/abc_input_method_navigation_guard"> </android.support.v7.widget.CardView> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="bottom" android:layout_marginBottom="30dp" android:layout_marginRight="10dp" android:scaleType="fitXY" android:src="@drawable/abc_ratingbar_full_material" /> </FrameLayout> 

Pero en el resultado mi visión de la imagen que va a la parte posterior de cardview intento reletivelayout en vez de framelayout pero mismo resultado.

Tratar:

  • Utilizar un RelativeLayout

  • Alinee el ImageView con el derecho / extremo principal, y añada un margen derecho / final

  • Alinee el FAB a la parte superior de la vista de la tarjeta y añada un margen negativo

 <RelativeLayout ...> <CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="120dp" /> <ImageView android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@id/cardView" android:layout_marginTop="-32dp" android:layout_marginRight="20dp" /> </RelativeLayout> 

El CardView tiene por defecto la elevación en la API 21+, puede manipular la elevación para que sea menor que la de ImageView

  <android.support.v7.widget.CardView xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" app:cardElevation="1dp"/> <ImageView android:id="@+id/image_view_user" android:layout_width="48dp" android:layout_height="48dp" android:elevation="2dp"/> 

En Pre 21 puedes usar

 overlayView.bringToFront(); root.requestLayout(); root.invalidate(); 

Esto no funcionará en 21+ si tiene diferentes niveles de elevación

  • Cómo cambiar el origen de ImageView en android
  • Xamarin.Android: ¿Cómo capturar eventos Button definidos en el atributo OnClick XML?
  • Barra de herramientas Appcompat no da estilos a spinner
  • ¿Cómo puedo hacer que mi botón se parezca más al botón de acción flotante de Android JellyBean (v21)?
  • ¿Cómo cambiar el color del pulgar en el buscador?
  • Add Layout progamatically android
  • Android: Cómo evitar que el diseño se presione cuando se invoca el teclado
  • Pasar recurso XML a XMLReader
  • Desmarcando archivos XML en objetos Java en Android?
  • Android: cambiar el tamaño de la vista de la imagen en XML
  • Nombre de paquete alias o apodo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.