возможно ли изменить цвет тени, создаваемый свойством возвышения xml? Я хочу, чтобы тень динамически изменялась с помощью кода.
Переведено автоматически
Ответ 1
Я знаю, что этот вопрос очень старый и, вероятно, автору больше не нужен ответ. Я просто оставлю его здесь, чтобы другие могли его найти.
Система возвышения в Lollipop не поддерживает цветные тени.
Но, если вам нужны цветные тени, их можно получить с помощью Carbon. Это своего рода библиотека поддержки Material Design, и в самой последней версии есть опция изменения цвета тени. На Behance есть масса приятных дизайнов с цветными тенями, и я подумал, что было бы неплохо иметь их, несмотря на отсутствие такой функции в Android. Важно отметить, что цветные тени эмулируются на всех версиях Android, в том числе и на версии 5.0+.
Я знаю, что опаздываю, но я хочу поделиться решением, поскольку я усердно искал эту проблему, и одобренный метод, приведенный выше по ссылке: https://javalang.ru/a/42717993/18398843 работает плохо, эти тени отображают некоторые случайные формы при небольшом размере нанесения.. Кстати, решение заключается в том, что вы должны использовать "ComplexView" для создания своей пользовательской тени,
// это создаст круглую тень, для моих нужд вы можете уменьшить радиус
Пользовательский вид
val shadow = ComplexView(context) val radii = floatArrayOf(100f, 100f, 100f, 100f, 100f, 100f, 100f, 100f)//customise according to your requirement val opacity = 150//customise according to your requirement shadow.shadow =Shadow( 2, opacity, "#96B9BB", GradientDrawable.RECTANGLE, radii, Shadow.Position.CENTER )