我已经使用imageview和一些按钮进行了布局,我希望按钮具有可用屏幕宽度和高度的一半。
这是我试过的,我的xml如下。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/imageidid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:src="@drawable/actionbar_bg" />
</LinearLayout>
<LinearLayout
android:id="@+id/1st row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@id/imageid"
>
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row1 col1" />
<Button
android:id="@+id/btn2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row1 col2" />
</LinearLayout>
<LinearLayout
android:id="@+id/2nd row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@id/1st row"
>
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row2 col1" />
<Button
android:id="@+id/btn2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row2 col2" />
</LinearLayout>
</RelativeLayout>
,输出看起来像这样。
我想要这样的东西。(注意imageview占据屏幕高度的40%)
答案 0 :(得分:4)
这是您需要的代码,您只需更改视图的权重即可设置您希望视图采用的屏幕百分比:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="40"
android:scaleType="centerCrop"
android:src="@drawable/actionbar_bg" />
<LinearLayout
android:id="@+id/1st row"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@id/imageid"
android:layout_weight="30"
android:orientation="horizontal" >
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="row1 col1" />
<Button
android:id="@+id/btn2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="row1 col2" />
</LinearLayout>
<LinearLayout
android:id="@+id/2nd row"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@id/1st row"
android:layout_weight="30"
android:orientation="horizontal" >
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="row2 col1" />
<Button
android:id="@+id/btn2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="row2 col2" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
试试这个,注意:
代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/imageid"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:contentDescription="@string/description"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/actionbar_bg" />
</LinearLayout>
<LinearLayout
android:id="@+id/1strow"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal" >
<Button
android:id="@+id/btn11"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/row1col1" />
<Button
android:id="@+id/btn21"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/row1col2" />
</LinearLayout>
<LinearLayout
android:id="@+id/2ndrow"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal" >
<Button
android:id="@+id/btn12"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/row2col1" />
<Button
android:id="@+id/btn22"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/row2col2" />
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
您的RelativeLayout没有做任何特别的事情,所以将其更改为LinearLayout(将width和height属性保留为&#34; match_parent&#34;但添加
android:orientation="vertical"
然后,对于每个较小的LinearLayouts,添加:
android:layout_weight=".xx"
其中xx是您希望子布局使用的大型LinearLayout的百分比。
这里的背景参考,请务必阅读:
http://developer.android.com/guide/topics/ui/layout/linear.html
答案 3 :(得分:0)
您可以使用LinearLayout作为主布局,然后使用线性布局的weightsum属性