2012-03-27 197 views
146

我想创建自定义按钮,我需要它是圆形的。我如何创建一个圆形按钮? 我认为这不可能与draw9patch。自定义圆形按钮

另外我不知道如何制作自定义按钮!

你有什么建议吗?

+0

你必须扩展按钮类并重写onDraw方法。 – 2012-03-27 06:14:14

+2

但问题是在这里,如果我扩展,并且用户接触到圆圈,Onlcick将被调用,如何解决这个问题。 – Ata 2012-03-27 06:17:45

+0

为什么不只是设置一个圆形图像作为您的按钮背景? – MKJParekh 2012-03-27 06:42:59

回答

285

使用XML绘制这样的:

保存在drawable文件夹

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="false"> 
     <shape android:shape="oval"> 
      <solid android:color="#fa09ad"/> 
     </shape> 
    </item> 
    <item android:state_pressed="true"> 
     <shape android:shape="oval"> 
      <solid android:color="#c20586"/> 
     </shape> 
    </item> 
</selector> 

Android的重大影响以下内容round_button.xml虽然FloatingActionButton是一个更好的选择,如果你想用做xml选择器,在res中创建一个文件夹drawable-v21并在其中保存另一个round_button.xml以下xml

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="#c20586"> 
    <item> 
     <shape android:shape="oval"> 
      <solid android:color="#fa09ad"/> 
     </shape> 
    </item> 
</ripple> 

,并将其设置为XML的Button背景是这样的:

<Button 
android:layout_width="50dp" 
android:layout_height="50dp" 
android:background="@drawable/round_button" 
android:gravity="center_vertical|center_horizontal" 
android:text="hello" 
android:textColor="#fff" /> 

重要:

  1. 如果你想让它显示所有这些状态(启用,禁用,突出等),您将使用选择器作为described here
  2. 您必须保留这两个文件才能使drawable向后兼容。否则,在之前的android版本中你会面临奇怪的例外。
+1

谢谢! 我将它添加到我的应用程序!它看起来很棒! – vitaluha 2013-12-18 23:03:31

+0

如何添加圆形按钮的图像中心.. – reegan29 2015-06-17 09:35:57

+0

通过绘制文件夹,你的意思是打开一个名为'drawable'的文件夹,或将其保存在drawable-mdpi,hdpi等...? – Jjang 2015-11-12 10:17:21

55

Markushi写了一个具有惊人效果的圆形按钮部件。点击here

enter image description here

+1

伟大的按钮..感谢您的代码 – John 2014-06-12 12:06:52

+0

如何使用此非圆形图像? – tomsoft 2015-08-22 15:57:37

+2

只是抬起头来:这个答案中的图书馆已被弃用。作者(Markushi)建议使用[浮动操作按钮](https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html)。 – 2015-09-15 13:06:02

14

AngryTool for custom android button

可以做出什么样定制的Android按键的使用这个工具网站... 我做圆形和方形按钮,圆角与此toolsite .. 访问可能我会帮你

+1

谢谢你的男人。你救了我。这正是我需要的。 – Suniel 2015-09-08 04:37:29

+0

不错的工具!谢谢! – camelCaseCoder 2016-01-14 06:41:53

+0

Yeh..Enjoy编码 – 2016-02-03 10:35:11