web-dev-qa-db-fra.com

Comment placer une imageview au-dessus d'une autre imageview dans android

Ceci est ma mise en page que j'ai essayée jusqu'à présent sans succès

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@color/white">

 <LinearLayout 
    Android:id="@+id/lltest" 
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:orientation="horizontal"
    Android:layout_centerHorizontal="true">

        <ImageView 
        Android:id="@+id/inside_imageview" 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" 
        Android:layout_marginTop="5dip"
        Android:layout_marginBottom="5dip"
        Android:src="@drawable/frame"/>

</LinearLayout>

 <ImageView 
        Android:id="@+id/outside_imageview" 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" 
        Android:layout_alignTop="@id/inside_imageview"
        Android:scaleType="fitXY"/>
</RelativeLayout>

Ce que je veux exactement, c'est d'avoir mon outside_imageview au-dessus de inside_imageview avec la hauteur et la largeur exactes ... Comment faire grâce à la mise en page?

20
Coder_sLaY
    <RelativeLayout
      xmlns:Android="http://schemas.Android.com/apk/res/Android"
      Android:layout_width="fill_parent"
      Android:layout_height="fill_parent"
      Android:background="@color/white" >

    <ImageView
        Android:id="@+id/inside_imageview"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginBottom="5dip"
        Android:layout_marginTop="5dip"
        Android:src="@drawable/frame" />

      <ImageView
         Android:id="@+id/outside_imageview"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:layout_alignTop="@id/inside_imageview"
         Android:layout_alignBottom="@id/inside_imageview"
         Android:layout_alignLeft="@id/inside_imageview"
         Android:layout_alignRight="@id/inside_imageview"            
         Android:scaleType="fitXY" />
  </RelativeLayout>

Le layout_align[Top|Bottom|Left|Right] l'attribut dans RelativeLayout est utilisé pour aligner les vues en fonction de leurs valeurs x et y respectives dans la marge. Le deuxième ImageView sera désormais aligné en haut, en bas, à gauche et à droite du premier ImageView en fonction des marges. Le remplissage est ignoré dans l'alignement.

40
DeeV

FrameLayout est ce dont vous avez besoin. Vous pouvez simplement fusionner la disposition parent qui est également un FrameLayout. Jetez un œil au Blog des développeurs Android : http://Android-developers.blogspot.it/2009/03/Android-layout -tricks-3-Optimize-by.html

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_gravity="center">

    <ImageView
        Android:id="@+id/outside_imageview" 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:scaleType="fitXY"/>

    <ImageView
        Android:id="@+id/inside_imageview" 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" 
        Android:layout_marginTop="5dip"
        Android:layout_marginBottom="5dip"
        Android:src="@drawable/frame" />
</merge>
19
Francesco Vadicamo

Vous devriez essayer un FrameLayout. À l'intérieur d'un FrameLayout, chaque enfant est superposé.

6
Michele

J'ai essayé de cette façon et cela a fonctionné pour moi, j'espère que cela aide

 <FrameLayout
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:orientation="vertical"
    Android:padding="5dip">
<ImageView
    Android:id="@+id/image_first"
    Android:orientation="vertical"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:src="@drawable/imga"/>
<ImageView
    Android:id="@+id/imageview"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:src="@drawable/image"/>
</FrameLayout>
2
Aditya Vyas-Lakhan
                <RelativeLayout
                Android:layout_width="match_parent"
                Android:layout_height="match_parent"
                Android:padding="@dimen/_15dp">
                <ImageView
                    Android:layout_width="match_parent"
                    Android:layout_height="match_parent"
                    Android:padding="@dimen/_10dp"
                    Android:layout_marginTop="@dimen/_50dp"
                    Android:background="@drawable/white_background"
                   />
                <ImageView
                    Android:layout_width="@dimen/_100dp"
                    Android:layout_height="@dimen/_100dp"
                    Android:background="@drawable/my_credit"
                    Android:layout_marginTop="@dimen/_5dp"
                    Android:layout_centerHorizontal="true"
                    />
            </RelativeLayout>
1
Sunil