如何创建Android UI,使其不随屏幕分辨率而变化?

时间:2012-07-25 06:06:48

标签: android android-layout android-emulator

我有一个带有背景图片的Android应用程序,我将在模拟器上部署并查看其行为。

最初我使用皮肤WVGA800的模拟器。在UI中,布局中声明的所有textView都已正确放置。 但是当我将模拟器皮肤更改为500x600时,在UI中,很少有textView错位。

所以有人可以建议如何处理这个问题。

2 个答案:

答案 0 :(得分:0)

关于Android的好处,但很难的是你不知道代码运行的设备的大小或宽高比。如果你想要全屏图像,你需要愿意按比例缩放(按比例或不成比例)或裁剪。

如果您尝试将文字放在背景图片上的特定位置,那么您将度过一段美好时光。我以前试过这个并且很快就改变了主意。

这是我的建议:阅读支持docs的屏幕(正如@abhilasha所说),并使用可以很好地扩展的自适应UI元素(如9-patch图像,相对布局等)。

然后,如果您要在图片中放置文字,而不是尝试在TextView上放置ImageView,请将您想要的图片设置为TextView的背景。然后你知道文本相对于图像的位置。

答案 1 :(得分:0)

我的选择: 1)对于简单的ui,我认为你可以使用许多有视图的,以下; 机器人:layout_centerHrizontal 机器人:layout_centerVertical
机器人:layout_centerInparent
机器人:layout_alignParentBottom 机器人:layout_alignParentLeft
机器人:layout_alignParentRight
机器人:layout_alignParentTop
android:layout_alignWithParentIfMissing

机器人:layout_below
机器人:layout_above
机器人:layout_toLeftOf
机器人:layout_toRightOf
机器人:layout_alignTop
机器人:layout_alignLeft
机器人:layout_alignBottom android:layout_alignRight

机器人:layout_marginBottom
机器人:layout_marginLeft
机器人:layout_marginRight
android:layout_marginTop

有助于使用布局或查看attars来设置其位置。 2)你可以使用一些布局xml来适应它。就像那样

if(screen width < 480)
setcontentview(r.layout.for480lay)
else if(screen width > 480&&screen width <640)
setcontentview(r.layout.for640lay)
..
..