在我的应用程序中,我需要显示看起来像这样的切换按钮(这个用于检查状态)http://s58.radikal.ru/i159/1308/dc/e3cb45e9a71f.jpg,深色是父视图背景。 它必须只是一个50x50大小的彩色圆圈,但对于检查状态,它必须包括外面的蓝色边框。整个按钮必须始终为70x70,因此它有足够的空间用于边框。我想我必须使用简单形状drawable用于默认状态和layer-list drawable用于检查状态,但它对我不起作用,它只是创建某种拉伸椭圆并且没有任何边框(如此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"/>
我无法理解我做错了什么......