Android Layout - Взвешивание - PullRequest
       0

Android Layout - Взвешивание

0 голосов
/ 12 февраля 2012

Я потратил часы, пытаясь решить эту проблему, и провел много времени, просматривая другие ответы.Я, очевидно, упускаю что-то простое, но действительно пытаюсь.

Я сократил свой код до самых основ, чтобы найти проблему.

Макет имеет фон, верхнюю половинуэто хорошая графика, ниже верхней половины я надеюсь иметь кнопки.Фон сверху, первый линейный макет (вертикальный).Затем внутри него расположены две вертикальные линейные компоновки.

Верхняя вертикальная компоновка имеет вес 1. Нижняя вертикальная компоновка имеет вес 1.

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

Все, что я хочу сделать, - это добавить четыре кнопки изображения книжняя половина экрана, централизованная по горизонтали.

вот мой код:

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

    <!--  Layout 1, the top half -->
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical" >
    </LinearLayout>

    <!-- Layout 2, the bottom half, containing buttons -->
    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical" >

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:src="@drawable/playbtnimg" android:layout_weight="1"/>

        <ImageButton
            android:id="@+id/imageButton2"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:src="@drawable/achievementsbtnimg" android:layout_weight="1"/>
    </LinearLayout>

</LinearLayout>

Эти две кнопки теперь начинают занимать около 2/3 вертикального пространства.Они не должны заходить в верхнюю половину экрана.Я пытаюсь использовать макеты таким образом, чтобы он работал на разных размерах экрана.Я бы хотел, чтобы изображения масштабировались так, чтобы они соответствовали ячейке линейного макета, а не обрезались по верхам сторон.

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Попробуйте добавить этот код, если вы используете ImageButtons в качестве фона.

android:adjustViewBounds="true"

Исправлена ​​похожая проблема, с которой я столкнулся.

Надеюсь, что это работает и удачного кодирования.

0 голосов
/ 13 февраля 2012

Добавьте атрибут weightsum к корневому элементу, то есть родительский элемент LinearLayout

, вот как это будет выглядеть

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/menubackground"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="2"
android:orientation="vertical">

То же самое будет для LinearLayout, имеющегокнопки

Это поможет в дальнейшем, вы можете прочитать больше в документации Android

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