Comment placer une imageview sur une autre imageview dans android

C'est ma mise en page que j'ai essayé 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 avoir mon outside_imageview en haut de inside_imageview avec la hauteur et la largeur exactes... Comment le faire par layout?

17
demandé sur Coder_sLaY 2012-08-14 23:59:45

7 réponses

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

layout_align[Top|Bottom|Left|Right] l'attribut RelativeLayout est utilisé pour aligner les vues en fonction de leurs valeurs respectives de x et y dans la marge. Le deuxième ImageView sera maintenant aligné vers le haut, en bas, à gauche, et à droite de la première ImageView basé sur les marges. Le rembourrage est ignoré dans l'alignement.

36
répondu DeeV 2012-08-14 20:18:43

FrameLayout est ce que vous avez besoin. Vous pouvez simplement fusionner le layout parent qui est un FrameLayout trop. Jetez un oeil à l' 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>
18
répondu Francesco Vadicamo 2012-08-14 21:29:30

Vous devriez essayer un FrameLayout. À l'intérieur D'un FrameLayout chaque enfant est au-dessus de l'autre.

6
répondu Michele 2012-08-14 20:04:41

Vous avez besoin d'une disposition de cadre. Essayez de vérifier AndroidFrameLayout.

4
répondu con_9 2013-03-13 18:00:48

j'ai essayé de cette façon et il a travaillé pour moi,j'espère que ça 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>
1
répondu Aditya Vyas-Lakhan 2017-01-23 12:02:37
                <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
répondu Sunil 2017-03-15 06:57:20

il suffit d'ajouter traduction z et il sera sur le dessus, assurez-vous que la traduction z est plus grand que la vue que vous voulez être sur le dessus de. Désolé pour la réponse tardive.

-1
répondu MicroRJ 2018-04-15 13:55:19