Android:如何将透明图像放在另一个具有精确宽度和高度的图像上

时间:2013-09-12 06:22:59

标签: android

我有2张图片main_bg和一张透明图像船。从main_bg裁剪船只,我想在main_bg上放置船舶出现在main_bg上的确切位置上的裁剪图像。当我使用

android:layout_width="match_parent" android:layout_height="match_parent"

船看起来像一个细长的船。当我使用“wrap_content”而不是“match_parent”时, 它看起来像一个小图像。如何在main_bg上设置精确的宽度和高度。

这是我的xml代码。

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/main_bg" 
android:gravity="left" 
android:orientation="horizontal">
     <LinearLayout 
    android:id="@+id/ship" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/ship" 
    android:orientation="vertical">
</LinearLayout>

如何正确放置?

3 个答案:

答案 0 :(得分:0)

您应该尝试使用FrameLayouts将一个图像叠加到另一个图像上。像:

FrameLayout
    Image
FrameLayout
    Image

并根据需要设置FrameLayouts的尺寸。

答案 1 :(得分:0)

您可以使用两个FrameLayout并执行以下操作:

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/main_bg" >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/ship" >

    </FrameLayout>

</FrameLayout>

答案 2 :(得分:0)

使用帖子How to maintain multi layers of ImageViews and keep their aspect ratio based on the largest one?中的LayeredImageView,请参阅带有标记如何放置图层的示例