在我的应用程序中,我需要显示如下所示的切换按钮(这个用于检查状态)http://s58.radikal.ru/i159/1308/dc/e3cb45e9a71f.jpg,深色是父视图背景。它必须只是一个大小为 50x50 的彩色圆圈,但对于选中状态,它必须包括外面的蓝色边框。整个按钮必须始终为 70x70,因此它有足够的边框空间。我想我必须为默认状态使用简单的可绘制形状,为选中状态使用可绘制的图层列表,但它对我不起作用,它只是创建了某种拉伸的椭圆并且没有任何边框(就像这个http://s019.radikal .ru/i619/1308/50/0f02f9ab2ea4.jpg)。这是我用于 ToggleButton 背景的代码:
first_board_color_dot.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_checked="true" android:drawable="@drawable/first_board_color_dot_checked"></item>
<item android:drawable="@drawable/first_board_color_dot_default"></item>
</selector>
first_board_color_dot_checked.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
android:innerRadius="34dp"
android:shape="ring"
android:thickness="2dp" >
<solid android:color="@color/first_player_dot_color" />
</shape>
</item>
<item>
<shape android:shape="oval" android:gravity="center">
<solid android:color="@color/first_board_color" />
<size
android:height="50dp"
android:width="50dp" />
</shape>
</item>
</layer-list>
first_board_color_dot_default.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="oval" android:gravity="center">
<solid android:color="@color/first_board_color" />
<size
android:height="50dp"
android:width="50dp" />
</shape>
</item>
</layer-list>
这就是我设置按钮的方式
<ToggleButton
android:id="@+id/board_color_button1"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_marginRight="30dp"
android:text=""
android:textOn=""
android:textOff=""
android:background="@drawable/first_board_color_dot"
android:checked="true"
android:onClick="boardColorButtonClicked"/>
我无法理解我做错了什么......