Android XML Layout - 4 ImageViews на одном экране - PullRequest
1 голос
/ 21 июня 2010

Мне показалось, что я понял XML-макет Android, но, похоже, я не понял.Я хочу иметь четыре ImageViews на одном экране, чтобы просматривать четыре изображения одновременно.

Это должно выглядеть следующим образом, где от 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 ]

3 голосов
/ 21 июня 2010

Как насчет:

  • a LinearLayout с ориентацией vertical, которая будет содержать все
  • , а затем первый LinearLayout с horizontalориентация
    • , которая будет содержать D и A,
  • и тот же тип LinearLayout с ориентацией horizontal, во второй раз, для B и C

И используя

  • android:layout_weight
  • и 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 s ...

(В приложении, из которого я это взял, мне пришлось добавить эти LinearLayout потому что есть не только эти изображения)

1 голос
/ 21 июня 2010

Нет смысла иметь TableRows в RelativeLayout. Это может помочь вам прочитать вводный макет документации . Он объясняет различные типы макетов и их использование.

В вашем случае вы сможете изменить RelativeLayout на TableLayout.

Кроме того, при задании вопросов макета полезно, если вы объясните поведение, которое вы видите своей попыткой, вместо того, чтобы просто сказать, что оно не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...