3

我正在努力使用 Android ToggleButton,因为我尝试更改绿色指示灯。在 Android SDK 文件夹中,我找到了 drawable\btn_toggle_bg.xml 文件,上面写着

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+android:id/background" android:drawable="@android:drawable/btn_default_small" /> 
  <item android:id="@+android:id/toggle" android:drawable="@android:drawable/btn_toggle" /> 
</layer-list>

我将此文件复制到我项目的可绘制文件夹并将最后一项更改为

<item android:id="@+android:id/toggle" android:drawable="@drawable/btn_toggle" />

然后从 Android SDK 中取出原始的 btn_toggle.xml,也复制到 drawable 文件夹中。btn_toggle.xml 是这样的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_checked="false" android:drawable="@drawable/btn_toggle_off" /> 
  <item android:state_checked="true" android:drawable="@drawable/btn_toggle_on" /> 
</selector>

所以我假设有必要创建 btn_toggle_off.png 和 btn_toggle_on.png。最后我添加了这一行

<ToggleButton
...
android:background="@drawable/btn_toggle_bg" />

但最后,ToggleButton 看起来很奇怪。我注意到的是 SDK 中名为 btn_toggle_off.9.png 和 btn_toggle_on.9.png 的文件,但我找不到对这些文件的引用,尽管它们看起来与原始指标完全一样。

你能帮助我吗?:)

4

1 回答 1

3

在不完全重新设置切换按钮小部件的样式的情况下,您尝试替换的资源可能应该是九个补丁 PNG,就像原始文件一样。

复制btn_toggle_off.9.pngbtn_toggle_on.9.png进入您的项目并修改它们,或使用该draw9patch工具将九个补丁元数据正确添加到您自己的图像中。

有关 Android 的九个补丁可绘制对象的说明,请参阅以下文档:

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

http://developer.android.com/guide/developing/tools/draw9patch.html

文件名的“.9”部分必须保留,但不会在 XML 资源中引用。所以btn_toggle_on.9.png简称为"@drawable/btn_toggle_on"

于 2011-04-20T21:19:11.420 回答