如何在android中制作圆形按钮[重复]

Posted

技术标签:

【中文标题】如何在android中制作圆形按钮[重复]【英文标题】:How to make circular button in android [duplicate] 【发布时间】:2018-06-17 02:39:33 【问题描述】:

我有一个应用程序,我必须在其中制作我成功制作的圆形按钮,但是当我单击按钮然后更改背景可绘制时我想要什么,但是当我这样做时,那个圆形按钮变得不可见。我该怎么做

代码:-

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <stroke android:color="@color/colorPrimary" android: />
        <solid android:color="@color/colorPrimaryDark"/>
        <size android: android:/>
    </shape>
</item>

【问题讨论】:

电池使用FloatingActionButton 为什么我们要添加额外的后缀 但是如何根据浮动按钮中的数据改变文字和背景 【参考方案1】:

使用它 - drawable/style_circular_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape android:shape="oval">
            <solid android:color="@color/colorDeepOrange"/>
            <size android: android:/>
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="oval">
            <solid android:color="@color/colorOrange"/>
            <size android: android:/>
        </shape>
    </item>
    <item >
        <shape android:shape="oval">
            <solid android:color="@color/colorOrange"/>
            <size android: android:/>
        </shape>
    </item>
</selector>

并将style_circular_button.xml 设置在Button 的背景上 -

<Button
   android:id="@+id/btnSignin"
   android:layout_
   android:layout_
   android:text="@string/text_btn_login"
   android:background="@drawable/style_circular_button"/>

【讨论】:

【参考方案2】:

使用代码更改图像

public void onClick(View v) 
   if(v == ButtonName) 
     ButtonName.setImageResource(R.drawable.ImageName);
   

或者,使用 XML 文件:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true"
   android:drawable="@drawable/login_selected" /> <!-- pressed -->
  <item android:state_focused="true"
   android:drawable="@drawable/login_mouse_over" /> <!-- focused -->
  <item android:drawable="@drawable/login" /> <!-- default -->
</selector>

在 OnClick 中,只需添加以下代码:

ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName));

你可以使用这个drawable来获取desired circle

UPDsetBackgroundDrawable 已弃用,请查看here。

【讨论】:

以上是关于如何在android中制作圆形按钮[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何制作一款圆形的vb按钮?

如何在Android中获得圆形[重复]

如何快速制作按钮中的圆形图像? [复制]

如何在android中设置按钮样式

单击按钮时如何在按钮上产生圆形波纹?

如何添加像gmail应用程序android这样的底部圆形图标?