Я пытаюсь написать карточную игру для Android, и у меня возникают проблемы с макетом. Я кодирую основной экран игры, который состоит из пяти карт, расположенных вертикально слева и справа, и пяти карт, расположенных горизонтально сверху и снизу. Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно, чтобы все карты сжимались по горизонтали и вертикали, если нет места для отображения всех других карт.
Ниже приведено изображение проблемы (я опускаю карточки слева и внизу для ясности). Как видите, справа показаны только четыре карты — нижняя карта частично закрыта. В представлении просто не хватило места, поэтому остальная часть карты, которая не подходит, отбрасывается.
Вот ссылка на скриншот, так как я не могу размещать изображения: image
В этой ситуации я бы хотел, чтобы Android уменьшил высоту всех верхних карт и правых карт, пока нижняя карта не будет полностью видна. Это не кажется сложным, но я не могу заставить его работать. Я создал изображение ниже, используя RelativeLayout и расположив все верхние карты рядом друг с другом, а все правые карты — друг под другом (с верхней картой справа под верхними картами). Я попытался добавить все карты в их собственное представление, но это тоже не сработало.
Какие-либо предложения? Спасибо!
Хорошо, я приблизил его (см. ссылку на изображение внизу), но теперь у меня обратная проблема - мне нужно его увеличить. Думаю, это потому, что я уменьшил изображения, которые использую для костюмов. Как видите, все они уменьшены до небольшого размера. Я хотел бы получить LinearLayout для каждой кнопки, настроенной на расширение по горизонтали/вертикали, чтобы использовать все свободное пространство, не рисуя последние кнопки с видимой части LinearLayout. В идеале я мог бы вставить изображение любого размера для костюма и изменить его размер соответствующим образом, но я боюсь, что прошу какой-то циклической логики или чего-то еще в механизме компоновки.
Вот мой XML-файл. Класс HandView содержит пять карт в каждом наборе. 5 карт имеют поле в 5 пикселей между собой.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:shrinkColumns="*"
android:background="#FF00FF00">
<TableRow
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="#FF0000FF">
<com.herscher.euchre.ui.HandView
android:background="#FFFF0000"
android:layout_column="1"
android:orientation="horizontal"
android:id="@+id/northHandView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal" />
</TableRow>
<TableRow
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<com.herscher.euchre.ui.HandView
android:layout_column="0"
android:orientation="vertical"
android:id="@+id/westHandView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.herscher.euchre.ui.PlayArea
android:layout_column="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/playArea" />
<com.herscher.euchre.ui.HandView
android:layout_column="2"
android:orientation="vertical"
android:id="@+id/eastHandView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<com.herscher.euchre.ui.HandView
android:layout_column="1"
android:orientation="horizontal"
android:id="@+id/southHandView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
</TableLayout>
У кого-нибудь есть предложения?