在android中创建带圆角的按钮[重复]
Posted
技术标签:
【中文标题】在android中创建带圆角的按钮[重复]【英文标题】:Create Button with rounded corners in android [duplicate] 【发布时间】:2012-09-28 02:13:00 【问题描述】:我正在尝试创建一个如上图所示的按钮。最初我的想法是创建一个 9 补丁并将其设置为按钮背景。但既然这是一个普通的按钮,我想我们可以在不使用任何图像的情况下以某种方式绘制它。
按钮背景颜色为#0c0c0c 边框颜色为#1a1a1a 文字颜色为#cccccc
我在 SO 上发现了一个类似的问题,但这会产生渐变 -android - border for button
【问题讨论】:
"按钮背景颜色是 #0c0c0c 边框颜色是 #1a1a1a" -- 这可能是 一个 组颜色,但您需要的不止这些。如果我们假设您希望这些颜色成为正常状态,那么按下状态的颜色是什么?残疾人状态?专注的状态?可能还有其他状态,默认Button
后台处理超出这些状态,但我会从它们开始。
谷歌有新框架,新技术更好Jetpack Compose
【参考方案1】:
Android 开发人员指南对此有详细指南:Shape Drawbables。
您也可以简单地从您提供的链接中删除 gradient
元素:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="3dp" />
<stroke android: android:color="#1a1a1a" />
</shape>
【讨论】:
谢谢 :) 添加这个以获得固体背景 <Button
android:id="@+id/button1"
android:layout_
android:layout_
android:layout_above="@+id/textView1"
android:layout_alignLeft="@+id/textView1"
android:layout_marginBottom="56dp"
android:text="Button"
android:textColor="#FF0F13"
android:background="@drawable/bbkg"/>//create bbkg.xml in drawable folder
bbkg.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/pressed" />
<item android:state_focused="false"
android:drawable="@drawable/normal" />
</selector>
normal.xml //按钮背景正常状态
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#10EB0A"/>
<stroke android:
android:color="#0FECFF" />
<padding android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp"/>
<corners android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp"/>
</shape>
pressed.xml //按钮背景按下状态
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FF1A47"/>
<stroke android:
android:color="#0FECFF"/>
<corners android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp"/>
</shape>
【讨论】:
在正常和按下状态下,您可以更改按钮的边框以及按钮背景颜色。只需适当地使用颜色代码【参考方案3】:如果你想要这样的东西
按钮预览
这里是代码。
1.在你的drawable文件夹中创建一个xml文件,比如mybutton.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="rectangle" >
<corners android:radius="3dip" />
<stroke android: android:color="#5e7974" />
<gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92" />
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="rectangle" >
<corners android:radius="3dip" />
<stroke android: android:color="#5e7974" />
<solid android:color="#58857e"/>
</shape>
</item>
<item >
<shape android:shape="rectangle" >
<corners android:radius="3dip" />
<stroke android: android:color="#5e7974" />
<gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />
</shape>
</item>
</selector>
2.现在使用这个drawable作为你视图的背景。如果视图是按钮,则如下所示:
<Button
android:id="@+id/button1"
android:layout_
android:layout_
android:padding="10dp"
android:textColor="#ffffff"
android:background="@drawable/mybutton"
android:text="Buttons" />
【讨论】:
【参考方案4】:只需使用MaterialButton
:
<com.google.android.material.button.MaterialButton
android:layout_
android:layout_
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:backgroundTint="..."
app:strokeColor="..."
android:textColor="..."
app:cornerRadius="xxdp"
android:text="BUTTON"
/>
【讨论】:
以上是关于在android中创建带圆角的按钮[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 4 的 UIView 中创建带圆角的渐变边框