我想创建自定义按钮,我需要它是圆形的。如何创建圆形按钮?我认为draw9patch不可能。
我也不知道如何制作自定义按钮!
你有什么建议吗?
像这样使用 xml 可绘制对象:
将以下内容另存为round_button.xml文件drawable夹
round_button.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 材质效果: 虽然FloatingActionButton是一个更好的选择,但如果您想使用 xml 选择器,请drawable-v21在其中创建一个文件夹并使用以下 xmlres保存另一个文件夹round_button.xml
FloatingActionButton
drawable-v21
res
<?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>
Button并将其设置为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" />
重要的:
继 Tomasz 的回答之后,您还可以使用 PorterDuff 乘法模式以编程方式设置整个按钮的阴影。这将改变按钮颜色而不仅仅是色调。
如果您从标准的灰色阴影按钮开始:
button.getBackground().setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);
会给你一个红色阴影按钮,
button.getBackground().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
会给你一个绿色阴影按钮等,其中第一个值是十六进制格式的颜色。
它通过将当前按钮颜色值乘以您的颜色值来工作。我相信您还可以使用这些模式做更多的事情。