В моем дизайне пользовательского интерфейса у меня есть область переменной ширины (в зависимости от размера и ориентации дисплея). Этот регион Я хотел бы, чтобы заполнить с набором квадрата ImageButton
S со следующими ограничениямиНабор кнопок изображения для заполнения пробела
- кнопки заполнить всю ширину области и автоматически адаптироваться к различной ориентации дисплея и ширине
- исключения: кнопки не выйти за пределы определенного максимального размера, и выравнивание по левому краю после этого
- кнопки и остаются квадратной формы
- изображения кнопок довольно большой (300x300px) и должно быть уменьшено, чтобы заполнить кнопки
Для этого я использую LinearLayout
с горизонтальной ориентацией, как показано ниже в XML. LinearLayout
имеет layout_height = wrap_content
, однако он, кажется, тянется к его доступной высоте, в результате чего кнопки не являются квадратными. Кроме того, настройка max_width
, похоже, не имеет никакого эффекта.
Как мне изменить xml, чтобы получить желаемый макет?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/layoutImageButtons">
<ImageButton
android:layout_width="0dp"
android:maxWidth="50dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="fitXY"
android:id="@+id/imageButton1" />
<ImageButton
android:layout_width="0dp"
android:maxWidth="50dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="fitXY"
android:id="@+id/imageButton2" />
<ImageButton
android:layout_width="0dp"
android:maxWidth="50dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="fitXY"
android:id="@+id/imageButton3" />
<ImageButton
android:layout_width="0dp"
android:maxWidth="50dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="fitXY"
android:id="@+id/imageButton4" />
</LinearLayout>
Спасибо за очень хорошо документированный ответ. Что мне не хватает, так это то, что кнопки не используют доступное пространство, т. Е. Вы решили это, адаптировав расстояние ** между кнопками до доступного места. – jerry
@jerry, так это решение вашей проблемы? –
ОК, теперь я увидел описание, которое вы добавили. Я хочу, чтобы изображения росли и сохраняли интервал небольшим. Значит ли это, что я хочу достичь, может быть сделано только в коде, а не в макете? – jerry