Pregunta

Se puede colocar una pequeña vista sobre otro grande de la visión? Por ejemplo, tengo un VideoView que se reproduce un archivo en el fondo. Por esto, en alguna parte del / la esquina medio, quiero poner otra ImageView.

Pero en Lineal / Disposición relativa, puntos de vista se puede colocar sólo una tras otra, o respecto a la otra, y AbsoluteLayout se desaconsejó. Entonces, ¿qué hago?

¿Fue útil?

Solución

FrameLayouts dejar que se acumulan cada vista por encima de la de abajo. Esto también se puede lograr con un RelativeLayout.

Otros consejos

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

Este es un ejemplo donde dos Views se apilan y compensado para ilustrar mejor el punto:

 introducir descripción de la imagen aquí

Esta es la disposición real de XML con las dos cajas superpuestas TextView. El desplazamiento de las dos cajas se realiza mediante android:layout_gravity mientras android:gravity se utiliza para centrar el texto en sí mismo 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>

Sólo en caso de si desea colocar una vista en la parte superior de un ButtonView luego usar este; android:elevation="7dp" para la vista que tiene que ser colocado en la parte superior del botón.

También puede hacerlo mediante el uso de ConstraintLayout un nuevo diseño introducido por Google.

  

ConstraintLayout le permite crear diseños grandes y complejos con una jerarquía de vistas de plano (no hay 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>
<?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/yellow"
    >
        <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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top