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>