Как размер компонентов Android в соответствии с размером изображения, используя XML

голоса
4

Я создал пользовательский значок панели в Android , используя XML макет создатель, используя RadioGroup внутри LinearLayout (XML приведена ниже). Каждый RadioButton в RadioGroup имеет собственную вытяжку (с проверенными и непроверенными состояниями) в качестве своего android:buttonатрибута.

Линейная планировка себя в пределах RelativeLayoutтак , что она может появиться в произвольном положении на экране (как боковая панель, в данном случае).

В 55 вводимых коэффициенте пикселей в ширине, и android:layout\_widthатрибут всех этих взглядов wrap\_content.

Когда я сделать этот компонент видимым, выровнены в нижнем левом углу экрана, только около трех четвертей ширины изображения RadioButton видны. Установка layout\_widthиз RelativeLayoutк fill\_parent выпрямляет это и вызывает полную кнопку , чтобы появиться.

Однако это означает, что группа кнопок потребляет события нажатия по всей ширине экрана.

Как я могу сделать кнопку всей видимости, и есть только область кнопки реагируют на щелчки? Жесткие кодирования ширины Drawable не является особенно желательным решением.

<RelativeLayout android:id=@+id/RelativeLayout01 android:layout_width=wrap_content android:layout_height=wrap_content>
    <LinearLayout android:id=@+id/LinearLayout02 android:layout_width=wrap_content android:layout_height=wrap_content android:orientation=vertical android:layout_alignParentBottom=true android:layout_alignParentLeft=true android:layout_below=@+id/LinearLayout01 android:visibility=invisible>
        <RadioGroup android:id=@+id/RadioGroup01 android:layout_height=wrap_content android:checkedButton=@+id/RB01 android:layout_width=fill_parent>
            <RadioButton android:id=@+id/RB01 android:layout_width=fill_parent android:layout_height=wrap_content android:button=@drawable/DR01/>
            <RadioButton android:id=@+id/RB02 android:layout_width=fill_parent android:layout_height=wrap_content android:button=@drawable/DR02/>
            <RadioButton android:id=@+id/RB03 android:layout_width=fill_parent android:layout_height=wrap_content android:button=@drawable/DR03/>
            <RadioButton android:id=@+id/RB04 android:layout_width=fill_parent android:layout_height=wrap_content android:button=@drawable/DR04/>
        </RadioGroup>
    </LinearLayout>
    </RelativeLayout>
Задан 10/02/2009 в 11:47
источник пользователем
На других языках...                            


2 ответов

голоса
7

Установка ширины LinearLayout, RadioGroup или RadioButton в ДП (плотность indpendent пикселей) может работать для вас. Основываясь на том, что, котор вы сказали выше, я думаю, что она должна была бы быть шириной компоновщика. Размеры «зашиты», но они будут масштабироваться с размером экрана.

Таким образом, XML может выглядеть следующим образом:

android:layout_width="55dp"

Официальная документация для дпс находится здесь

Ответил 19/02/2009 d 01:47
источник пользователем

голоса
1

Я не могу себе представить, почему другой ответ имеет 6 upvotes, это совершенно неправильно

Размеры «зашиты», но они будут масштабироваться с размером экрана.

Нет , они будут масштабироваться на основе плотности экрана. Я горячо желаю , чтобы мы могли использовать проценты от XML, вместо того , чтобы закодировать их.

Ответил 28/04/2012 d 04:54
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more