Линейное расположение нескольких изображений, не может получить право fill_parent / wrap_content - PullRequest
0 голосов
/ 10 июля 2011

У меня есть сетка PNG 9x2, которую я хотел бы распространить в своем виджете

После некоторых советов я решил пойти (немного почистил код)

<linearLayout
  android:orientation="vertical">
  <linearLayout
    android:orientation="horizontal">
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
  </linearLayout>
  <linearLayout
    android:orientation="horizontal">
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
      <ImageView />
  </linearLayout>
</linearLayout>

Вопрос на миллион долларов - как определить ширину / высоту элементов. Я хотел бы, чтобы объект заполнил всю ширину виджета, следовательно width = "fill_parent" на верхнем уровне. Но кроме этого я бы хотел, чтобы изображения хорошо масштабировались. Я не могу заставить это работать и удивляюсь, если я пропустил концепцию fill_parent / wrap_content.

Я попытался поэкспериментировать с параметром веса, но поскольку изображения имеют разные размеры, это просто не сработало.

Любая помощь в том, как определить ширину / высоту вышеупомянутых элементов, чтобы эта сетка 9x2 заполнила ширину и заняла столько места, сколько необходимо по высоте, будет принята с благодарностью!

Спасибо Johan

1 Ответ

1 голос
/ 10 июля 2011

Вы должны использовать параметр макета Android: layout_weight. Если все изображения имеют layout_weight = 1, пространство будет разделено поровну между ними:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contentContainer"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF">

  <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"  android:background="#0000aa">
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent"  android:background="#ff0000"/>
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent" />
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent"  android:background="#ff0000"/>
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent" />
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent"  android:background="#ff0000"/>
  </LinearLayout>
  <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"  android:background="#00aaaa">
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent"  android:background="#ff0000"/>
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent" />
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent"  android:background="#ff0000"/>
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent" />
      <ImageView android:layout_weight="1" android:src="@drawable/icon" android:scaleType="fitXY" android:layout_width="wrap_content" android:layout_height="fill_parent"  android:background="#ff0000"/>
  </LinearLayout>
</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...