如何将渐变可绘制设置为 FloatingActionButton 上的 backgroundTint 属性

Posted

技术标签:

【中文标题】如何将渐变可绘制设置为 FloatingActionButton 上的 backgroundTint 属性【英文标题】:How to set gradient drawable as backgroundTint attribute on FloatingActionButton 【发布时间】:2017-09-27 17:59:12 【问题描述】:

我想为浮动操作按钮使用渐变色而不是传统的纯色。

我已经知道如何修改按钮的背景颜色,使用ColorStateList。有没有办法将以下可绘制对象实现为背景色调?

overlay.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">

    <gradient
        android:startColor="#c25f82"
        android:endColor="#5a3e60"
        android:angle="-270" />

</shape>

【问题讨论】:

【参考方案1】:

是的,您可以将渐变设置为 FAB,我刚刚发现了一个问题。

1.) 在drawable文件夹中创建一个gradient.xml,并在其中添加以下代码,

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <gradient
        android:type="linear"
        android:angle="0"
        android:startColor="#03a9f4"
        android:endColor="#e91e63" />
</shape>

2.) 在你的 dimens.xml 中添加这条线,

<dimen name="design_fab_image_size" tools:override="true">56dp</dimen>

3.) 在您的 Fab 中添加 android:src="@drawable/gradient"

【讨论】:

【参考方案2】:

没有。正如您已经注意到的,色调始终是纯色。您可以将任何东西设置为背景,但我想这种方法会破坏支持 FAB。

【讨论】:

以上是关于如何将渐变可绘制设置为 FloatingActionButton 上的 backgroundTint 属性的主要内容,如果未能解决你的问题,请参考以下文章

如何让带有渐变的矢量可绘制对象在 < API 24 中工作?

IText - 如何将渐变设置为PDF文档的背景?

如何使基于角的渐变可绘制

具有渐变的可绘制视图背景在预览中正确显示但在模拟器中不正确

如何在android中将状态栏背景设置为渐变色或drawable

带有 android 可绘制 xml 的光泽渐变