2

我正在尝试制作一个简单的时钟/秒表应用程序。在我的整体垂直线性布局中,我有一个相对布局,后跟一个按钮。相对布局有几个相互堆叠的图像视图以产生时钟。

然而,我注意到相对布局以及图像视图本身在线性布局中占用了太多空间。时钟是方形的,那么为什么 Eclipse 坚持它是一个长的垂直矩形呢?如果我不使用权重,我在底部的按钮甚至不会显示。(但奇怪的是,它显示它是否在相对布局之上。)

我已经尽我所能:将相对布局中项目的高度设置为 wrap_content,以及相对布局本身。我尝试使用权重,通过为 relativelayout 赋予权重 0 和按钮 1,然后根据需要将它们的 layout_heights 分别设置为 0dp。还是不行。其他东西还有很多空间,我希望时钟的父布局仅将内容包裹起来。

这里发生了什么?详情请看附图。代码附在下面。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/tiling_rules"
android:orientation="vertical" >

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:ignore="ContentDescription" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/clock" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/hour" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/min" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/sec" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bell" />
</RelativeLayout>

<Button
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="Test" />

它在垂直方向上的外观 水平方向的样子 我希望布局如何自我包装。

4

2 回答 2

2

事实证明,我只需要添加:

android:adjustViewBounds="true"

到每个 ImageView!现在时钟片段的边界被“包裹”在内容周围,即使在其布局中设置 wrap_content 不起作用。不过感谢您的建议!

于 2013-08-13T19:25:20.220 回答
1

尝试使用 RelativeLayout 作为您的主要布局。这样,您可以使按钮显示在屏幕底部。然后,如果需要,请在主布局中为时钟件使用单独的布局

有点像这样

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="ContentDescription" >

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/clock" />

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/hour" />

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/min" />

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/sec" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/bell" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:text="Button" />

于 2013-08-13T17:18:12.110 回答