0

这个问题可能看起来很基本,但我找不到答案。我需要将 imageView 放置在屏幕中的特殊位置。假设,我需要它位于屏幕顶部的十分之三和屏幕左侧的五分之一。

首先想到的是使用 AbsoluteLayout 并使用绝对坐标放置 imageView。然而,这种方法在使用不同的屏幕尺寸时会导致问题。问题是我无法在 xml 文件中获取屏幕尺寸(宽度和高度),另一方面,我找不到用于 ImageView 的 setX() / setY() 或类似方法以编程方式执行此操作。

解决这个问题的一个想法是使用 LinearLayout 而不是 AbsoluteLayout 并插入虚拟视图(如 textVies)来填充我想要的 imageView 后面或上方的空间。但是,如果我有多个图像视图要放置在屏幕中并且所需的位置未对齐,这会变得复杂。另一种解决方案是使用填充或边距,但它不适用于 AbsoluteView。

4

2 回答 2

0

您可以使用LinearLayout 和RelativeLayout 轻松地将一个或多个视图放置在您想要的任何位置。

在使用 LinearLayout 时,在相应的 xml 中使用其属性(如重力和重量)来调整视图。

在使用 RelativeLayout 时,您可以使用对齐、边距和 XXTo,其中 XX 可能是任何现有视图的左、右、上、下。

如果没有得到您的答案,请具体说明您想要放置的位置和数量。

于 2013-02-20T14:47:25.217 回答
0

是这样的:

    AbsoluteLayout.LayoutParams lp=new AbsoluteLayout.LayoutParams(width,height,x,y);
    myImageView.setLayoutParams(lp);
于 2013-02-21T10:44:30.290 回答