如何在 android 中制作可水平拉伸的背景

How do I make a horizontally stretchable background in android

我想制作这样的按钮背景

因此,当内容变长时,背景只会从中心区域拉伸,圆形边保持圆形。

我尝试制作一个没有垂直拉伸区域的 9 补丁,但是圆形的边变成了不同尺寸的椭圆形,如下图所示。

当我在中心指定一个垂直拉伸区域时,背景变成了我不希望的样子。这是一个带圆角的正方形。

我还得说,这个背景基本上是一个粉红色的边框,里面和外面都有一个粉红色的阴影。我找不到用 android drawable 来实现它的方法,因为没有有效的方法来使用它来获得良好的阴影效果

我想不出这样做的干净解决方案。请帮助我。

在 xml 可绘制对象中使用矩形形状并保持半径最大。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <stroke
        android:width="3dp"
        android:color="#A5A5A5" />
    <corners android:radius="999dp" />

</shape>

好的,我刚刚制作了一个扩展 FrameLayout 的自定义视图,它具有可自定义的彩色阴影和描边。

您也可以使用它在中心绘制内部背景。

您可以从我的 GitHub 页面将其添加到您的项目中。

https://github.com/mr-sarsarabi/NeonLightBackgroundLayout