【问题标题】:Android: Gradient FAB backgroundAndroid:渐变 FAB 背景
【发布时间】:2020-03-10 15:41:10
【问题描述】:

有人可以分享如何为浮动操作按钮实现渐变背景吗?

我想实现这样的目标:

我尝试使用下面的drawable:

<?xml version="1.0" encoding="utf-8"?>

<item>
    <shape android:shape="oval">
        <gradient
            android:type="linear"
            android:angle="0"
            android:startColor="#f6ee19"
            android:endColor="#115ede" />
    </shape>

</item>
<item android:gravity="center"
    >
    <bitmap android:src="@drawable/ic_close_accent"
        android:gravity="fill_horizontal" />

</item>

然后在我的活动中,我将 android:src 设置为这个可绘制对象,但它不起作用

我也尝试设置 android:backgroundTint 和 android:background 但这些也没有用。

有人可以帮忙吗?

【问题讨论】:

标签: android android-layout gradient floating-action-button


【解决方案1】:

我尝试了许多解决方案,但无法更改可以将可绘制对象用作资源的背景。

因此尝试在下面使用可能对您的情况有所帮助。

布局.xml

...
...
    <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/floatingActionButton"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_gravity="end|bottom"
            android:backgroundTint="@color/transparent"
            android:scaleType="fitCenter"
            android:src="@drawable/fab_scr"
            app:elevation="0dp"
            app:fabSize="normal"
            app:pressedTranslationZ="0dp" />
...
...

我将android:src 设置为可绘制并移除背景(即透明)

fab_src.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <stroke
                android:width="1dp"
                android:color="#38260D" />
            <padding
                android:bottom="20dp"
                android:left="20dp"
                android:right="20dp"
                android:top="20dp" />
            <corners
                android:bottomLeftRadius="8dip"
                android:bottomRightRadius="8dip"
                android:topLeftRadius="8dip"
                android:topRightRadius="8dip" />

            <gradient
                android:angle="45"
                android:centerX="50"
                android:centerY="50"
                android:endColor="#B9FFA6"
                android:gradientRadius="100"
                android:startColor="#EB77FF"
                android:type="linear" />

        </shape>
    </item>
    <item>
        <shape android:shape="line">
            <stroke
                android:width="2dp"
                android:color="@android:color/white" />

        </shape>
    </item>
    <item>
        <rotate
            android:fromDegrees="90"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toDegrees="-90">
            <shape android:shape="line">
                <stroke
                    android:width="2dp"
                    android:color="@android:color/white" />

            </shape>
        </rotate>
    </item>

</layer-list>

结果:

注意: 试图找到一种方法来去除外环(黄色是你找到一种方法做评论我会改进答案)

【讨论】:

  • 它不工作。我完全按照您的代码进行了处理,但它呈现了一个没有图标的黑色 FAB...
  • android:layout_width="100dp" android:layout_height="100dp" 这是代码的重要部分。
  • 设置 app:borderWidth="0dp" 去除外黑圈
猜你喜欢
  • 1970-01-01
  • 2020-08-27
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多