Android:为按钮添加 NEON 效果

标签 android android-xml android-drawable android-button android-shapedrawable

我想对按钮(在 android studio 中)有一个发光效果,如图所示:
Button design image
我不想要背景图像,所以为了获得这种效果,我尝试在 xml 文件中进行操作。我为按钮添加了笔触,并为按钮提供了阴影(与笔触颜色相同)。
我使用了一个 90 度角的线性渐变,开始和结束颜色与笔划相同,中心颜色与背景颜色相同。请看代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <layer-list>
        <item android:right="5dp" android:top="0dp">
            <shape>
                <corners android:radius="50dp" />
                <gradient
                    android:angle="45"
                    android:startColor="#8008c3fa"
                    android:endColor="#8008c3fa"
                    android:type="linear"
                    />
            </shape>
        </item>
        <item android:bottom="5dp" android:left="6dp" android:right="10dp" android:top="5dp">
            <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
                <corners
                    android:radius="50dp"
                    />
                <gradient
                    android:angle="90"
                    android:centerX="50%"
                    android:centerColor="@color/trans_parent"
                    android:startColor="#8008c3fa"
                    android:endColor="#8008c3fa"
                    android:type="linear"
                    />
                <padding
                    android:left="0dp"
                    android:top="0dp"
                    android:right="0dp"
                    android:bottom="0dp"
                    />
                <size
                    android:width="270dp"
                    android:height="60dp"
                    />
                <stroke
                    android:width="2.5dp"
                    android:color="#08c3fa"
                    />
            </shape>
        </item>
    </layer-list>
</item>

</selector>
对于上面的 xml,我得到了以下结果:
Result image from code
虽然设计和结果图像看起来完全不同,但我认为如果我们增加中心颜色高度并保持阴影淡出效果,它可以工作。但我不能这样做。

最佳答案

我知道已经有一段时间了,但是如果有人仍然对这种效果感兴趣,这是我制作的一个自定义 View 库,它的灵感来自这个问题:
Glowing and Neon Button
enter image description here
如图所示,它还具有动画禁用和启用方法。
它是 MIT 许可的,所以随心所欲。希望这可以帮助某人。

关于Android:为按钮添加 NEON 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63977936/

相关文章:

android - 不能将矢量可绘制对象用作 android 中的可绘制位图

android - 无法解析 : junit:junit:4. 12

android - 我的 Android 应用程序可以下载但没有出现在我下载的应用程序中

android - MotionLayout 组可见性问题

android - 用 Espresso 点击 EditText 的 drawable 右边

java - 在低于 23 的 API 中绘制复杂的可绘制对象

java.lang.RuntimeException : Unable to instantiate activity ComponentInfo - NFC access 错误

java - Android Studio - 从 URL 获取 JSON 致命异常

Android Studio 3.5 - 格式化 (ctrl+Alt+L) XML 文件中的代码正在重新排列 LinearLayout 中的 View

java - 如何自定义在分层模型中显示详细信息的搜索建议 UI