Android XML Drawable: скругленный прямоугольник с внутренним краем градиента - PullRequest
0 голосов
/ 21 апреля 2020

В настоящее время я рисую простой прямоугольник с закругленными углами, используя рисование XML (черный BG для контраста):

<shape android:shape="rectangle"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@android:color/white"/>
    <corners android:radius="15dp" />
</shape>

Rectangle

Что Я хотел бы добиться добавления внутреннего контура / свечения, который является градиентом, чтобы он выглядел так:

Rectangle with gradiant

Я знаю, что это, скорее всего, задействовать несколько XML элементов градиента в списке слоев, но, где я застрял, создавая это, выясняется, как:

  • Сделать градиент, следуя кривым в углах, так как они закруглены (всегда грань по направлению к центру прямоугольника или как можно ближе)
  • Избегайте эффекта с двойной интенсивностью в углах, как в примере. Это произойдет, если 4 градиента просто перекрываются или используется радиальный градиент, вытянутый до эллипса. Плотность внешнего цвета должна быть одинаковой по всему прямоугольнику или как можно ближе

Весьма предпочтительно, если возможно, чтобы реализация была модифицируемой так, чтобы:

  • Я могу контролировать, как далеко в прямоугольник достигает градиент
  • Я могу контролировать, насколько быстро градиент исчезает на любом заданном расстоянии (контролировать его плотность / интенсивность)
  • Я могу удалить любой сторона от градиента, так что я могу иметь только 1 или 2 ребра, и их углы светятся при необходимости

Это прекрасный пример того, что мне нужно, за исключением того, что это, очевидно, гораздо проще сделать с кругом и радиальный градиент. Мне нужен этот последовательный шаблон, но с закругленным прямоугольником:

Circle Example

...