studio programacion permisos intent example editar descargar androidmanifest android views android-videoview overlapping

permisos - manual de programacion android pdf



¿Es posible colocar una vista sobre otra en Android? (5)

En caso de que desee colocar una vista encima de un ButtonView, use esto; android:elevation="7dp" para la vista que debe colocarse en la parte superior del botón.

¿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 medio / esquina, quiero colocar otro ImageView.

Pero en el diseño lineal / relativo, las vistas solo se pueden colocar una detrás de otra o relativas entre sí, y se desaconseja AbsoluteLayout. ¿Entonces qué hago?


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

ConstraintLayout le 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>


FrameLayout es el ViewGroup más ViewGroup y apila las Views en el orden en que se definen en el diseño XML (o se agregan mediante programación); El primero será más bajo, y el último estará en la parte superior.

Aquí hay un ejemplo en el que dos Views se apilan y se desplazan para ilustrar mejor el punto:

Aquí está el diseño XML real con los dos cuadros de TextView superpuestos. El desplazamiento de los dos cuadros se realiza con android:layout_gravity mientras que android:gravity se usa para centrar el texto en sí dentro de cada cuadro.

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


FrameLayouts te permite apilar cada vista sobre la de abajo. Esto también se puede lograr con un RelativeLayout .


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