FAB代码:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right|end"
android:layout_margin="16dp"
android:src="@drawable/add_chat"
android:tint="@android:color/white" />
</android.support.design.widget.CoordinatorLayout>
渐变背景代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<gradient
android:angle="90"
android:endColor="#e4849f"
android:startColor="#d96e30" />
</shape>
android:backgroundTint="”或app:backgroundTint="”都只使用颜色资源。有人能建议如何做到这一点吗?谢谢!
8条答案
按热度按时间qv7cva1a1#
对于仍有此问题的用户,简单的解决方法是设置FAB的前台。
比如下面这个例子:
可绘制对象的代码(circle_btn_gradient.xml):
4ktjp1zp2#
**第一步.**新建一个 drawable.xml,并添加此代码
步骤2.)现在在你的dimens.xml中添加这行代码
步骤3.)最后使用
*android:src="@drawable/drawable.xml"*
在FAB中设置这个drawable.xmlP.S. -确保your_icon是PNG,JPEG。
jexiocij3#
接受的答案工作正常,但在添加下面的行后,它拉伸了在FAB上添加的图标
我分享截图:
上一个FAB按钮
在dimen.xml中添加design_fab_image_size并添加
android:src="@drawable/gradient"
后,图标会被拉伸:为了解决这个问题,我将gradient.xml替换为以下代码:
输出:
xpszyzbs4#
我尝试了一堆不同的答案,但都有自己的缺点或不与
material FAB
工作。当我意识到这不是它的目的时,我简单地用ImageView
替换了它。这工作得很好,看起来一模一样。fab_gradient.xml:
r7s23pms5#
所以,你不需要覆盖dimen
q9rjltbz6#
这种方法也有效。在drawable中创建一个名为fab_background.xml的形状,您可以在其中进行所有您想要的定制
在layout中创建一个名为custom_fab.xml的布局,然后使用图像视图设置backround和fab图标
然后可以使用
include
引用它示例
vddsk6oq7#
Here is the image of the FloatingActionButton
vnjpjtjt8#
使用
CardView
代替涟漪效果:上面的答案不适用于SVG,您可能还会看到拉伸图标等。这是一个整洁的方式,我用我的应用程序根据材料设计的晶圆厂:
**提示:**如果它没有出现在您想要的图层上方,请使用
elevation
属性。