在支持库中为 FloatingActionButton 设置边框颜色

Posted

技术标签:

【中文标题】在支持库中为 FloatingActionButton 设置边框颜色【英文标题】:Set border color for FloatingActionButton in support library 【发布时间】:2015-11-10 01:23:12 【问题描述】:

在支持库中引入了FloatingActionButton。 app:borderWidth="2dp" 可以设置按钮的边框宽度,但是如何设置边框颜色呢?

我为那个porpuse创建了一个自定义的drawable,例如:

<item>
     <shape android:shape="oval">
         <solid android:color="@color/color1" />
         <stroke android: android:color="@android:color/white" />
     </shape>
</item>

并尝试使用 FloatingActionButton 的 android:backgroundapp:backgroundTint 属性来设置背景。他们都没有工作。请注意, app:backgroundTint 似乎只接受颜色而不是可绘制的

有人知道任何解决方法吗?

【问题讨论】:

【参考方案1】:

你试过android:src属性吗? 试试这个

<android.support.design.widget.FloatingActionButton
    android:layout_
    android:layout_
    android:src="@drawable/your_drawable"
    andriod:scaleType="center"  /> <!-- You need to scale your src. ->

我希望它会起作用。

编辑

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/your_icon" /> <!-- include your icon here -->
    <item>
        <shape android:shape="oval"> <!-- or rectangle -->

            <stroke
                android:
                android:color="@android:color/white" />
        </shape>
    </item>
</layer-list>

您可以在drawable 形状xml 中添加您的图标。并为您的图标添加边框并将其应用于FAB

我在我的形状文件中添加了一个hdpi 图标,这就是我得到的结果。

根据 Google 设计规范,实际可绘制尺寸应为 24dp

【讨论】:

不,那只是在 FloatingActionButton 的中心设置 drawable。为此,我有一个图标。我正在寻找自己的 FloatingActionButton 解决方案。 我应该将这个drawable用于哪个属性? ( src, 背景, backgroundTint) 你自己试过一次吗?或者你只是猜测它应该是一个解决方案?如果是,请在一个简单的示例中分享您的源代码,以确认您的提议。 我告诉过你 android:src 只是集中图标。我猜你没有正确理解我在问什么。 你真的让我实施了这个工厂。无论如何,我编辑了我的答案。您需要扩大工厂规模。 scaleType 应该是中心。我尝试了hdpi 图标。尝试调整图标大小。然后再告诉我,它是集中图标吗?

以上是关于在支持库中为 FloatingActionButton 设置边框颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 的 GD 库中为文本添加发光或阴影? [关闭]

如何在 MIMChart 库中为图形使用固定的颜色集?建议是可观的

您可以在单个存储库中为每个目录添加额外的 .gitignore 吗?

如何从 Angular 的 PrimeNG 库中为 AutoComplete 组件设置焦点

如何在Java / Kotlin客户端库中为Google上的操作将一些数据保存到userStorage中

opencv simpleblobdetector在哪个静态库中