2013-02-20 82 views
0

此问题可能看起来很基本,但我找不到答案。 我需要将imageView放置在屏幕上的特殊位置。假设我需要从顶部开始十分之三,从屏幕左侧开始五分之一。在Android中以编程方式显示视图(imageView)

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

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

+0

你可以添加你想要什么它看起来像一个快速的样机? – 2013-02-20 14:41:02

+0

* ...另一方面,我不能在代码中以编程方式设置我的imageView的x和y。* - 究竟是什么阻止了您将代码定位在代码中? – Luksprog 2013-02-20 14:42:58

+0

假设我需要它在屏幕的左上角的十分之二和十五分之一处。 我不知道如何在代码中设置x和y。 ImaveView没有任何setX()或setY()方法。 – 2013-02-20 15:02:57

回答

0

您可以在您的屏幕上使用LinearLayout和RelativeLayout轻松定位您想要的任何位置。

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

在使用RelativeLayout时,您可以使用align,margin和XXTo,其中XX可能位于任何现有视图的左侧,右侧,顶部和下方。

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

+0

假设我需要将ImageView放置在屏幕左上角的十分之三和十五分之一处。我该怎么办? – 2013-02-20 15:07:34

0

它是这样的:

AbsoluteLayout.LayoutParams lp=new AbsoluteLayout.LayoutParams(width,height,x,y); 
    myImageView.setLayoutParams(lp); 
相关问题