【问题标题】:How to put a View in a determinate pixel/position如何将视图放置在确定的像素/位置
【发布时间】:2011-12-31 10:50:54
【问题描述】:

我需要在界面的自定义点中放置一个视图(例如图像)。 有没有一种方法可以将视图放在屏幕的精确像素/虚拟像素 (dp) 区域?

我需要将视图显示在其他视图上方。

我认为必须放置一个 RelativeLayout 并在其中放置应用程序的所有布局,然后放置相对于该布局的视图,但我需要一种对未来开发人员能够使用它更透明的方法

编辑:

我忘了说我需要以编程方式在运行时放置视图。我创建界面,在我的应用程序中制作内容,然后将图像放在其他视图上方的视图的具体区域中,例如在屏幕的一半或顶部或屏幕的 20% 或...

【问题讨论】:

    标签: android android-layout interface android-view


    【解决方案1】:

    您可以为布局设置边距并为其中的视图设置内边距,并且您可以指定相对于边缘或其他视图的位置。您还可以通过将 (match_parent/fill_parent 或 wrap_content) 替换为实际尺寸来指定布局的固定位置(请注意,您应该在 dp 或 dip 中指定所有尺寸) 例如,您有一个线性布局,并且您希望图像视图位于左边距右侧 20 dp,您可以尝试以下操作:

    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android::layout_marginLeft="20dp">
       <!-- Nest your views here and if you want you can set padding for them
    
    </LinearLayout>
    

    如果您希望您的视图位于屏幕的某个部分,例如屏幕顶部/屏幕底部等,您可以将它们全部嵌套在 RelativeLayout 中。这是一个很好的方法,它将消除任何混乱。

    祝你好运, 方舟

    【讨论】:

    • 您好 Arkde,我忘了说我需要在界面构建之后以编程方式放置视图。一个完美的例子是例如放置一个类似于 google admob 广告的视图好吗?程序启动然后调用admob 和admob 放广告。问题是我的 xml 中没有任何视图,我需要将新视图放在自定义位置,例如“在 20% 屏幕中”顶部或“在屏幕的一半中”,或者可能在底部或...怎么说呢,相对布局是一种可能性,但如果我们找到一种对未来开发人员更透明的方法
    • 我仍然认为相对布局仍然是最佳实践,因为您可以非常轻松地处理屏幕旋转并且没有任何其他复杂性。您可以以编程方式设置相关布局参数或将它们膨胀以加快您的速度(从 xml 编译的代码直接执行,而不是解释),您可以对嵌套视图执行相同操作:)
    【解决方案2】:

    如我发布的here 示例中的FrameLayout 怎么样?

    【讨论】:

    • Gracias Narcís,谢谢 Narcís,我会将您的答案和 Arkde 的答案混合起来解决我的问题
    【解决方案3】:

    您可以使用AbsoluteLayout,尽管它已被弃用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-17
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2016-12-17
      • 2021-05-22
      相关资源
      最近更新 更多