如何在android中将两个图像叠加在一起

时间:2015-10-28 11:49:44

标签: android image android-imageview overlap

在我的应用程序中,我有一个很大的图像视图' A'和六个小的图像视图s1,s2,s3,s4,s5,s6,最初用一些绘图设置所有图像视图。

当拖动小图像(s1,s2等)并放在大图像视图上时,' A'然后用相应的图像替换它。 例如,当将BALL图像拖到BAT图像上然后BAT图像正在用BALL图像替换时,Imageview A有BAT图像和imageview s1有BALL图像。

我的要求是当我将BALL图像拖到BAT图像上时,BAT图像应该在那里,BALL图像应该重叠(一个在彼此之上)。所以BAT和BALL图像应该在imageview A上。

4 个答案:

答案 0 :(得分:1)

您可以使用FrameLayout或RelativeLayout。最后插入的图像视图的顺序将在上面显示。

例如:

<RelativeLayout
android:layout_width="match_parent"
        android:layout_height="wrap_content">

<ImageView
android:id="@+id/A"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
android:src="@drawable/bat"
                 />
<ImageView
android:id="@+id/s1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
android:src="@drawable/ball"
                 />
</RelativeLayout>

答案 1 :(得分:0)

使用以下xml代码

<RelativeLayout   xmlns:android="http://schemas.android.com/apk/res/android"           

 android:layout_width="fill_parent"  
 android:layout_height="fill_parent"
 android:id="@+id/RelativeLayout1" 
 android:orientation="vertical"> 
  <!-- Add   image A --> 

<ImageView android:id="@+id/image1" 
  android:layout_width="800dp" 
  android:layout_height="400dp"
  android:layout_centerInParent="true"
  android:src="@drawable/image1" /> 

   <!-- Add smaller image--> 

  <ImageView android:id="@+id/image2" 
  android:layout_width="400dp"
  android:layout_height="200dp" 
  android:layout_centerInParent="true"
  android:layout_alignTop="@+id/image1" 
  android:src="@drawable/image2" />     
</RelativeLayout>

输出如下所示

output image

答案 2 :(得分:0)

使用FrameLayout。 例如:

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


<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView5"
    android:src="@drawable/prescription_not_attached"
    android:layout_gravity="center" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView8"
    android:src="@drawable/home_measure"
    android:layout_gravity="center" />
   </FrameLayout>

用你的图像替换我的图像。

希望它有所帮助,谢谢

答案 3 :(得分:0)

尝试使用FrameLayout,使用Linear不允许重叠...

FrameLayout frame = (FrameLayout) findViewById(R.id.frame);
ImageView bat = new ImageView(this);
iv.setImageResource(R.drawable.bat);
ImageView ball = new ImageView(this);
i.setImageResource(R.drawable.ball);

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        layoutParams.gravity = Gravity.RIGHT | Gravity.TOP;
i.setLayoutParams(layoutParams); 
frame.addView(bat);
frame.addView(ball);