如何在Android中创建此类型的按钮

时间:2014-04-05 08:36:58

标签: android xml button

如何在android中创建这种类型的按钮。我试过了 。我可以知道实现目标的正确方法是什么?也许这个问题太基础了,但我找不到合适的解决方案。请帮帮我。

我想创建此enter image description here

               <Button
                android:id="@+id/Btn1"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:background="@drawable/green_circle"
                android:textSize="20sp"
                android:textColor="@android:color/white"
                android:clickable="true"
                />

这是green_circle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
     <stroke android:width="1sp" android:color="#54d66a" />
</shape>

当我使用它时,Button看起来enter image description here

我怎样才能得到我的欲望按钮。感谢任何帮助

5 个答案:

答案 0 :(得分:2)

你定义了1sp(你应该使用&#34; dp&#34; btw。)圈,你就明白了。 我认为实现你想要的最简单方法是使用图层列表xml元素 - 只需将当前图形作为第一层,然后将第二层放入居中点(只有实心椭圆形,带有一些边距) 这里有文档:http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList 简单的用法(不是你的情况,但我认为它告诉你应该做什么):

<layer-list >
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="2dp"/>
            <solid android:color="@color/grey"/>
        </shape>
    </item>
    <item android:bottom="2dp">
        <shape android:shape="rectangle">
            <corners android:radius="2dp"/>
            <solid android:color="@color/green_light"/>
        </shape>
    </item>
</layer-list>

键是android:bottom="2dp",导致前景层小于背景层。

答案 1 :(得分:1)

1.实际上打开和关闭两个不同的无线电图像,然后制作一个可绘制的xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_checked="false" android:drawable="@drawable/check_off" />
     <item android:state_checked="true" android:drawable="@drawable/checkbox_on" />
     <item android:drawable="@drawable/checkbox_off" />
</selector>

2.并将此drawable设置为单选按钮上的背景。

答案 2 :(得分:1)

实现所需效果的一种方法是使用图层列表Drawable。要获得与您发布的图像类似的Drawable,请尝试以下

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <stroke android:width="1sp" android:color="#54d66a" /> 
        </shape>
    </item>
    <item android:top="5dp" android:left="5dp" android:right="5dp" android:bottom="5dp">
        <shape android:shape="oval">
            <solid android:color="#54d66a" />
        </shape>
    </item>
</layer-list>

答案 3 :(得分:0)

使用ImageButton

<ImageButton android:src="@drawable/green_circle" />

文档还说明了如何根据按钮的状态显示不同的图像。

答案 4 :(得分:0)

在可绘制文件夹中放置绿色圆圈图像。然后在xml中为你的按钮设置背景图像

       <Button
            android:id="@+id/Btn1"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:background="@drawable/yourimage"
            />

这将有效:)