0

更新1:

我按照下面阿基米德提供的指示进行操作。问题是我的 API 9“drawable”文件夹已经有一个名为“btn_radio.xml”的 XML 文档,其中的代码与您上面介绍的完全相同。现在,当我回到 Eclipse 并告诉它时:

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

我收到一条错误消息作为回报,错误:找不到与给定名称匹配的资源(在“背景”,值为“@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 中的图形布局中添加一个新的单选按钮时,单选按钮的银色部分都是透明的。所以不管主窗口的背景颜色如何,我只会看到一个单选按钮的轮廓,并且该单选按钮将被填充整个背景的颜色。

如果我创建一个分组项目并将两个单选按钮放在一个组中,我可以在两者之间切换,并且绿色指示器显示哪个是切换的可用,但按钮本身是透明的。

如何使我的单选按钮看起来像上图中的那个?似乎无论我启动一个“新”项目多少次,问题仍然存在。唯一影响它的是切换另一个“主题”,但一旦我运行应用程序,这并不是真正的解决方案。

谢谢你的帮助。

4

2 回答 2

0

这似乎是RadioButton可绘制的组成 png 的新 Gingerbread(2.3,API 级别 9)图形样式。

最简单的解决方法就是不使用 Gingerbread……转到您的项目属性,选择“Android”选项卡,然后将“项目构建目标”更改为 API 级别 8 或更低。

于 2010-12-13T15:04:28.830 回答
0

这是我认为应该适合您的解决方法:

1)。在 2.2 来源中查找“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.png”图像。您可以在 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" ... />
于 2010-12-13T19:16:53.977 回答