Установите высоту и ширину, используя dp вместо px. Смотрите ответ на этот пост для получения дополнительной информации о единицах. В чем разница между "px", "dp", "dip" и "sp" на Android?
Я бы также предложил вам ознакомиться с документацией Android по поддержке нескольких экранов.
Ладно, я воспользовался моментом, чтобы привести быстрый пример, ориентированный на Android 1.5.
Вы можете найти источник здесь .
Короче говоря, вам нужно предпринять следующие шаги:
Поместите ваши изображения в res/drawable
. У вас должно быть как минимум 4 иконки: нажата и не отмечена, нажата и проверена, не нажата и не проверена, не нажата и проверена
Создание макета типа selector
в res / drawable. Вот мой:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_pressed="false"
android:drawable="@drawable/radio_on"/>
<item android:state_checked="false" android:state_pressed="false"
android:drawable="@drawable/radio_off"/>
<item android:state_checked="true" android:state_pressed="true"
android:drawable="@drawable/radio_on_pressed"/>
<item android:state_checked="false" android:state_pressed="true"
android:drawable="@drawable/radio_off_pressed"/>
</selector>
Затем настройте RadioGroup
так:
<RadioGroup android:layout_width="fill_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:checkedButton="@+id/first">
<RadioButton android:id="@+id/first"
android:width="50dp"
android:height="50dp"
android:button="@drawable/button_radio"/>
<RadioButton android:id="@+id/second"
android:width="50dp"
android:height="50dp"
android:button="@drawable/button_radio"/>
<RadioButton android:id="@+id/third"
android:width="50dp"
android:height="50dp"
android:button="@drawable/button_radio"/>
<RadioButton android:id="@+id/fourth"
android:width="50dp"
android:height="50dp"
android:button="@drawable/button_radio"/>
</RadioGroup>
Я указал размер 50dp, так как размер моих элементов рисования составляет 50px x 50px. Также обратите внимание, что я устанавливаю android:button
, а не android:background
.
Вот подписанный APK проекта выше: Custom RadioButton (Примечание: он предназначен для SDK версии 4, поэтому не будет запрашивать разрешения SD и телефона)
Это должно дать следующий результат:
Надеюсь, это поможет.