我正在尝试制作一个简单的时钟/秒表应用程序。在我的整体垂直线性布局中,我有一个相对布局,后跟一个按钮。相对布局有几个相互堆叠的图像视图,以产生时钟。
然而,我注意到,相对布局以及图像视图本身在线性布局中占用了太多空间。时钟片是SQUARE,为什么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" />
答案 0 :(得分:2)
事实证明,我只需要添加:
android:adjustViewBounds="true"
到每个ImageView!现在,时钟片的边界被“包裹”在内容周围,即使在其布局中设置wrap_content不起作用。谢谢你的建议!
答案 1 :(得分: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" />