¿Es posible colocar una vista sobre otra en android?

¿Podemos colocar una pequeña vista sobre otra vista grande? Por ejemplo, tengo un VideoView que está reproduciendo un archivo en segundo plano. Sobre esto, en algún lugar en el centro / esquina, quiero colocar otro ImageView.

Pero en Linear / Relative Layout, las vistas se pueden colocar sólo una después de otra o relativ entre sí. Y Absolutelayout es desaconsejado. ¿Entonces qué hago?

FrameLayouts permiten apilar cada vista en la parte superior de la siguiente. Esto también se puede lograr con RelativeLayout .

FrameLayout es el ViewGroup más ViewGroup y apila las Views en el orden en que están definidas en XML de presentación; La primera será menor, y la última estará en la parte superior.

A continuación se muestra un ejemplo en el que las View s están desplazadas para ilustrar mejor el punto:

Introduzca aquí la descripción de la imagen

Aquí está el XML de presentación con los dos TextView s superpuestos. El desplazamiento se realiza con android:layout_gravity mientras android:gravity es para centrar el texto en sí dentro de cada TextView .

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="100dp"> <TextView android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="top|left" android:background="@android:color/holo_blue_light" android:gravity="center" android:text="First is below"/> <TextView android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="bottom|right" android:background="@android:color/holo_green_light" android:gravity="center" android:text=" Last is on top"/> </FrameLayout> 
 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/dp_20" android:background="@color/yellowt" > <VideoView android:id="@+id/videoview" android:layout_width="wrap_content" android:layout_centerInParent="true" android:layout_height="300dp" android:contentDescription="@string/app_name" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/camera" android:layout_margin="30dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:id="@+id/imageView" /> </RelativeLayout> 

También puedes hacerlo usando ConstraintLayout un nuevo diseño introducido por google.

ConstraintLayout permite crear diseños grandes y complejos con una jerarquía de vista plana (sin grupos de vistas anidadas).

  <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.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:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_weight="4" tools:context="com.edalat.example.MainActivity"> <VideoView android:id="@+id/videoView" android:layout_width="283dp" android:layout_height="349dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="24dp" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="24dp" android:layout_marginRight="24dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginLeft="24dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintHorizontal_bias="0.509"/> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@mipmap/ic_launcher" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="24dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="24dp" android:layout_marginLeft="24dp" app:layout_constraintLeft_toLeftOf="parent" android:layout_marginRight="24dp" app:layout_constraintRight_toRightOf="parent"/> </android.support.constraint.ConstraintLayout> 
  • Android - ¿Cómo puedo acceder a un objeto View instanciado en onCreate en onResume?
  • Android: ¿Cómo obtener la altura y el ancho de una vista personalizada?
  • Crear una vista compuesta en Android
  • La rotación de vista de Android no ocurre después de algunas llamadas de setAnimation
  • Hacer un clic de vista en primer plano
  • Cómo crear una actividad sin 'setContentView (R.layout.main)'
  • el ancho de conjunto a la vista de texto no funciona
  • ¿Cómo emitir un mensaje de confirmación (sí / no) de una tarea de Android?
  • Método para permitir que una sola vista secundaria desborde los límites del grupo de vista?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.