定位顶部视图,以显示高度的百分比表示

时间:2012-04-13 15:43:15

标签: android android-layout

我只知道这很简单,在大约30分钟的时间内,我会讨厌自己......

我有一个闪屏,它由一个填满屏幕的静态图像组成。所以我只需设置我在布局中使用的任何根视图的背景属性。

图像有一个空白区域,我需要在其上放置一个“我接受”按钮。为了处理不同的分辨率,我必须使用显示高度的百分比来定位 - 58%是现场。

我不能使用layout_weight因为按钮的大小而且不推荐使用absolutelayout(在代码中设置y位置)。

我怎样才能做到这一点?我不关心什么视图组是父母,我很好,有“空白”视图填补空间。

我的目标是在布局XML中完全执行此操作以保持代码清洁...

谢谢!

2 个答案:

答案 0 :(得分:4)

你说你不能使用layout_weight,但如果你想纯粹用XML做,那就是你唯一的选择。我不明白为什么你认为你无论如何都不能使用它。以下是您可能会这样做的示例:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/splash"
    android:orientation="vertical" >

   <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="58" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="42" >

            <!-- Place buttons here -->

    </LinearLayout>
</LinearLayout>

答案 1 :(得分:0)

我没有看到使用layout_weight的任何其他方式...也不推荐使用整个类AbsoluteLayout,所以尽量避免使用它。我建议使用LinearLayout作为你的rootView,给定的weight_sum为1.添加另一个填充空间的LinearLayout宽度,权重为0.58,低于你的Button,带有wrap_content属性。不幸的是,除非你发布你的xml,否则我不能告诉你更多信息,以便我能看到你想要实现的目标。 这种应该有用:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/your_desired_background"
    android:orientation="vertical" 
    android:weight_sum="1">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight=".58" />
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>