我的单选按钮背景是透明的,如何使其不透明?

时间:2010-12-13 14:40:14

标签: android button transparency radio

更新1:

我按照阿基米德提供的指示进行了操作。问题是我的API 9“drawable”文件夹已经有一个标题为“btn_radio.xml”的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 :(得分:0)

这似乎是RadioButton drawable的组成元素的新姜饼(2.3,API级别9)图形样式。

最简单的解决方法就是不使用Gingerbread ...转到项目属性,选择“Android”选项卡,然后将“Project Build Target”更改为API Level 8或更低版本。

答案 1 :(得分:0)

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

1)。查找&#39; btn_radio_off.png&#39;&#39; btn_radio_off_pressed.png&#39;,&#39; btn_radio_off_selected.png&#39;,&#39; btn_radio_on.png&#39;,&#39; btn_radio_on_pressed .png&#39;,&#39; btn_radio_on_selected.png&#39; 2.2源的图像。您可以在SDK子文件夹中找到它们。注意,有几组图像(hdpi,mdpi等)。在&#39; drawable&#39;内重新创建与这些文件相关的文件结构。 。目录

2)。在你的&#39; drawable&#39;目录创建&#39; btn_radio.xml&#39;文件包含以下内容:

<?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" ... />