我以为我已经理解了Android的XML布局,但似乎我没有。 我希望在一个屏幕上有四个ImageView,以便同时查看四个图像。
它应该如下所示,其中A到D代表图像视图:
DDDAAA
DDDAAA
BBBCCC
BBBCCC
我该怎么做?我试过这种方式,但它不起作用。 Eclipse编辑器似乎也不是很好。是否有更好的创建这些布局?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow>
<ImageView android:id="@+id/ImageView01" android:layout_height="wrap_content" android:layout_width="wrap_content" ></ImageView>
<ImageView android:id="@+id/ImageView02" android:layout_height="wrap_content" android:layout_width="wrap_content"></ImageView>
</TableRow>
<TableRow>
<ImageView android:id="@+id/ImageView03" android:layout_height="wrap_content" android:layout_width="wrap_content"></ImageView>
<ImageView android:id="@+id/ImageView04" android:layout_height="wrap_content" android:layout_width="wrap_content"></ImageView>
</TableRow>
</RelativeLayout>
答案 0 :(得分:3)
怎么样:
LinearLayout
,vertical
方向,包含所有内容LinearLayout
,horizontal
方向
LinearLayout
horizontal
android:layout_weight
相同,第二次为B和C 并使用
android:gravity="center"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="1"
>
<LinearLayout
android:id="@+id/DashboardNewPost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="1"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/new_post"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/DashboardPostsList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="1"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/posts_list"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="1"
>
<LinearLayout
android:id="@+id/DashboardCommentsList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="1"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/comments_list"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/DashboardBlogParameters"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="1"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/blog_params"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
所以每个布局占据足够的位置并居中?
有点像这样,我会说:
LinearLayout
我想(未尝试过)你甚至可以删除每个ImageView
周围的ImageView
,并将其所拥有的属性添加到LinearLayout
中。
(在我从中获取的应用程序中,我必须添加{{1}},因为不仅仅是那些图像)
答案 1 :(得分:1)
在RelativeLayout中使用TableRows是没有意义的。阅读介绍性布局documentation可能有助于您阅读。它解释了不同的布局类型及其用法。
对于您的情况,您应该能够将RelativeLayout更改为TableLayout。
此外,在询问布局问题时,如果您解释您在尝试中看到的行为,而不仅仅是说它不起作用,那么它会很有帮助。