ImageView处于固定位置

时间:2015-06-23 19:53:59

标签: android android-layout imageview

在我的RelativeLayout中,我有一张海景的大背景图片(1870px中的756px x drawable-xxhdpi),我以所有设备为中心:

<ImageView 
    android:src="@drawable/bg_image"
    android:scaleType = "centerCrop"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
</ImageView>

除此之外,我还要将另一张船的图像(500px x 300px也放在drawable-xxhdpi中),水平居中,但应该230px以外从屏幕顶部到地平线。

<ImageView 
    android:src="@drawable/another_image"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="230px"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</ImageView>

enter image description here

我没有得到正确的结果,并且android抱怨使用px作为保证金顶部的单位。

结果:设备1(在地平线上调整)

enter image description here

较小的设备2(未在地平线上调整):

enter image description here

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

我认为你必须使用“dp”单元...你可以尝试使用不同尺寸的不同设备(例如模拟器)来保证它。

我希望这会对你有所帮助

答案 1 :(得分:1)

确保背景图像上的地平线垂直居中。然后,您可以使用RelativeLayout这个简单的技巧,将您的船舶图像定位在视图的垂直中心

之上
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:src="@drawable/bg_image"
        android:scaleType = "centerCrop"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </ImageView>

    <View
        android:id="@+id/center"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_centerInParent="true" />

    <ImageView
        android:src="@drawable/another_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/center">
    </ImageView>
</RelativeLayout>

答案 2 :(得分:0)

每台设备都拥有自己的屏幕分辨率。我认为您使用支持一种屏幕分辨率的船形图像。如果你想解决这个问题,你需要添加不同分辨率的船图像。像HDPI,LDPI,MDPI,xhdpi