【问题标题】:Posision a view (imageView) programatically in Android在 Android 中以编程方式定位视图 (imageView)
【发布时间】:2013-02-21 18:44:30
【问题描述】:

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

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

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

【问题讨论】:

  • 你能快速添加一个你想要的样机吗?
  • ...另一方面,我无法在代码中以编程方式设置 imageView 的 x 和 y。 - 究竟是什么阻止了您定位小部件在代码中?
  • 假设我需要它位于屏幕顶部的十分之二和屏幕左侧的五分之一。我不知道如何在代码中设置 x 和 y。 ImaveView 没有任何 setX() 或 setY() 方法。
  • 这是基于您将 ImageView 放在 FrameLayoutRelativeLayout 中的假设,您可以简单地获取您想要放置视图的点,然后为查看,以便将其放置在正确的坐标处。

标签: android position imageview


【解决方案1】:

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

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

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

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

【讨论】:

  • 假设,我需要将 ImageView 放置在屏幕顶部的十分之三,左侧的五分之一处。我该怎么办?
【解决方案2】:

原来是这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 2012-03-01
    • 1970-01-01
    • 2015-09-11
    • 2013-05-30
    • 1970-01-01
    相关资源
    最近更新 更多