Как представить это в Android Layout - PullRequest
0 голосов
/ 05 ноября 2010

Мне нужно представить следующую диаграмму:
alt text

Каждый X будет кнопкой изображения. Я думал о создании трех таблиц с одним столбцом в каждой, и чтобы высота каждой ячейки составляла половину высоты таблицы. Проблема заключается в том, что стол должен иметь возможность растягиваться или сжиматься, потому что я беспокоюсь о том, чтобы все отображалось на экране, а таблицы - единственная часть, которая может изменить размер, и все это выглядит хорошо. У меня проблема в том, что строки имеют размер, равный размеру кнопок изображения. Хотя все кнопки изображений имеют одинаковый размер, в частности, левая и правая таблицы должны иметь отступы вокруг кнопок изображений, чтобы все было в порядке. Я бы добавил поля для кнопок, но это побеждает проблему с изменением формы, которая у меня возникает ... Я думаю. Есть предложения?

Ответы [ 3 ]

2 голосов
/ 05 ноября 2010

Возможно, есть лучший способ, но ниже приведен один из способов сделать это. Нужно ли растягивать кнопки, чтобы они соответствовали ячейкам? Или они просто будут сосредоточены внутри? Предполагая последнее, вот предложение (я не уверен в этом, но я считаю, что это должно работать):

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="horizontal"
 >
 <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  android:layout_weight="1"
  android:gravity="center"
  >
  <ImageButton
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"                           
   android:layout_weight="1"
   android:src="@drawable/drawable11"
   />
  <ImageButton
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"                           
   android:layout_weight="1"
   android:src="@drawable/drawable12"
   />
 </LinearLayout>

 <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  android:layout_weight="1"
  android:gravity="center"
  >
  <ImageButton
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"                           
   android:layout_weight="1"
   android:src="@drawable/drawable21"
   />
  <ImageButton
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"                           
   android:layout_weight="1"
   android:src="@drawable/drawable22"
   />
  <ImageButton
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"                           
   android:layout_weight="1"
   android:src="@drawable/drawable23"
   />
 </LinearLayout>

 <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  android:layout_weight="1"
  android:gravity="center"
  >
  <ImageButton
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"                           
   android:layout_weight="1"
   android:src="@drawable/drawable11"
   />
  <ImageButton
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"                           
   android:layout_weight="1"
   android:src="@drawable/drawable12"
   />
 </LinearLayout>
</LinearLayout>

К сожалению, сейчас у меня нет Eclipse, чтобы проверить это, но это должно быть близко к тому, что вам нужно. Вероятно, есть более чистый способ использования RelativeLayout (с использованием меньшего количества вложенных представлений), но это не в моей голове, дает вам кое-что для начала.

1 голос
/ 05 ноября 2010

Попробуйте использовать вид сетки.

Ссылка на Android-справочник разработчика

0 голосов
/ 05 ноября 2010

Возможно, вам будет проще собрать это вместе, если вы используете инструмент рисования пользовательского интерфейса, такой как DroidDraw . Когда вы закончите с рисованием, приложение сгенерирует соответствующий исходный код, который будет использоваться для вашего приложения.

...