在我的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>
我没有得到正确的结果,并且android抱怨使用px
作为保证金顶部的单位。
结果:设备1(在地平线上调整)
较小的设备2(未在地平线上调整):
有什么建议吗?
答案 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