Фон переключателя прозрачный, как мне сделать его непрозрачным? - PullRequest
0 голосов
/ 13 декабря 2010

Обновление 1:

Я следовал указаниям Архимеда ниже.Проблема в том, что в моей «нарисованной» папке API 9 уже есть документ XML под названием «btn_radio.xml», а код внутри точно такой же, как вы представили выше.Теперь, когда я возвращаюсь к затмению и говорю ему:

`<RadioButton android:background="@drawable/btn_radio" ... />`

, я получаю сообщение об ошибке, в котором говорится: Ошибка: не найден ресурс, который соответствует данному имени (в 'background' со значением '@ drawable /btn_radio_on ').

Итак, вместо этого я пошел в папку API 8 и посмотрел, нашел папки drawable_hdpi и mdpi, выполнил поиск btn_radio_off и btn_radio_on и скопировал эти два изображения в соответствующие папки API 9,В Eclipse исправлена ​​ошибка, из-за которой фоны радиокнопок не отображались.Тем не менее, когда я запускаю свой код, виртуальное устройство по-прежнему отображает старый сломанный (прозрачный) образ. *

Исходное сообщение:

Привет, я следую заУчебник Gingerbread 2.3 (я использую Win7 / Eclipse) с этого сайта, и я смотрю на это изображение здесь: http://www.vogella.de/articles/Android/images/first50.gif

Каждый раз, когда я добавляю новый переключатель в графическую раскладку вMain.xml серебряная часть переключателя прозрачна.Поэтому, независимо от цвета фона главного окна, я буду видеть только контур радиокнопки, и этот радиокнопка будет заполнена цветом всего фона.

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

Как сделать так, чтобы кнопка переключателя была похожа нана изображении выше?Кажется, что независимо от того, сколько раз я запускаю «новый» проект, проблема сохраняется.Единственное, что на него влияет, - это переключение другой «темы», но это не совсем решение, когда я запускаю приложение.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2010

Это обходной путь, который, я считаю, должен работать для вас:

1).Найдите 'btn_radio_off.png', 'btn_radio_off_pressed.png', 'btn_radio_off_selected.png', 'btn_radio_on.png', 'btn_radio_on_pressed.png', 'btn_radio_on_selected sources.png' at at. 2.2.Вы можете найти их в ваших подпапках SDK.Обратите внимание, что существует несколько наборов изображений (hdpi, mdpi и т. Д.).Создайте заново структуру файлов, относящуюся к этим файлам, в вашей директории drawable.

2).В вашем каталоге 'drawable' создайте файл 'btn_radio.xml' со следующим содержимым:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:state_window_focused="false"
          android:drawable="@drawable/btn_radio_on" />
    <item android:state_checked="false" android:state_window_focused="false"
          android:drawable="@drawable/btn_radio_off" />

    <item android:state_checked="true" android:state_pressed="true"
          android:drawable="@drawable/btn_radio_on_pressed" />
    <item android:state_checked="false" android:state_pressed="true"
          android:drawable="@drawable/btn_radio_off_pressed" />

    <item android:state_checked="true" android:state_focused="true"
          android:drawable="@drawable/btn_radio_on_selected" />
    <item android:state_checked="false" android:state_focused="true"
          android:drawable="@drawable/btn_radio_off_selected" />

    <item android:state_checked="false" android:drawable="@drawable/btn_radio_off" />
    <item android:state_checked="true" android:drawable="@drawable/btn_radio_on" />
</selector>

Это фактически тот же список состояний, который ОС использует для переключателей.

3),Затем внутри вашего макета XML объявите свой пользовательский переключатель, используя приведенный выше список состояний, который можно нарисовать с помощью атрибута android:background:

<RadioButton android:background="@drawable/btn_radio" ... />
0 голосов
/ 13 декабря 2010

Похоже, это новый графический стиль Gingerbread (2.3, API level 9) для составляющих pngs рисованного элемента RadioButton.

Самое простое решение - просто не использовать Gingerbread ... перейдите в свойства своего проекта, выберите вкладку "Android" и измените "Project Build Target" на API Level 8 или ниже.

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