我想做一个Button
像这个 :
我尝试使用 style
与 shapeAppearance
:
<style name="ShapeAppearance.Button" parent="ShapeAppearance.MaterialComponents">
<item name="cornerFamily">rounded</item>
<item name="cornerSizeTopLeft">@dimen/button_corner_radius</item>
<item name="cornerSizeTopRight">5dp</item>
<item name="cornerSizeBottomRight">@dimen/button_corner_radius</item>
<item name="cornerSizeBottomLeft">5dp</item>
</style>
<dimen name="button_corner_radius">40dp</dimen>
我在我的 MaterialButton 中应用样式,如下所示:
app:shapeAppearance="@style/ShapeAppearance.Button"
结果是:现在,我尝试放置一个线性渐变:
例如 :
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#DF2D48"
android:centerColor="#D72D46"
android:endColor="#AC2139"
android:angle="360" />
</shape>
我在我的 Shape 样式中应用它:<item name="android:background">@drawable/test</item>
但结果是一样的。为什么 ?
最佳答案
使用 Material 按钮渐变颜色:
Material 按钮:
要使用具有 MaterialButton 背景色调属性的自定义可绘制背景,应为 null 引用代码:
应用程序:backgroundTint="@null"
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:text="@string/button_enabled"
app:backgroundTint="@null"
android:background="@drawable/gradient_1"
/>
形状渐变: res/drawable/gradient_1.xml<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="0"
android:endColor="#DD8E54E9"
android:startColor="#CC225AE0" />
<corners android:topLeftRadius="18dp"
android:bottomRightRadius="18dp"
android:topRightRadius="5dp"
android:bottomLeftRadius="5dp"
/>
<stroke
android:width="6dp"
android:color="#007879E8" />
</shape>
关于android - 使用 MaterialButton 和 shapeAppearance 渐变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63178195/