Android XML Layout - 在一个屏幕上显示4个ImageView

时间:2010-06-21 19:12:11

标签: xml android layout

我以为我已经理解了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>

2 个答案:

答案 0 :(得分:3)

怎么样:

  • LinearLayoutvertical方向,包含所有内容
  • 然后是第一个LinearLayouthorizontal方向
    • 包含D和A,
  • 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。

此外,在询问布局问题时,如果您解释您在尝试中看到的行为,而不仅仅是说它不起作用,那么它会很有帮助。