Внешний вид тени во всех версиях Android

В Lollipop мы устанавливаем view методом Shadow by setElevation().

Но в pre-Lollipop это не работает.

Каков наилучший подход, чтобы View выглядел одинаково при отображении на pre-lollipop устройствах и lollipop устройствах?


person JayVDiyk    schedule 06.01.2016    source источник
comment
Вы не имеете смысла. И да, поскольку вопрос точно такой же (как заставить работать возвышение на предварительном леденце), это обман, если вы не можете объяснить, чем ваш отличается от связанного вопроса. Обратите внимание, если предоставленные ответы не работают для вас, вам нужно указать, почему ваш вопрос отличается...   -  person 2Dee    schedule 06.01.2016
comment
@VipulAsri Ваша ссылка более актуальна!   -  person JayVDiyk    schedule 06.01.2016


Ответы (1)


Есть куча подходов и каждый из них имеет свои плюсы и минусы:

  1. Нарисуйте тени, используя сгенерированные градиенты. Библиотека поддержки дизайна делает это. Этот подход поддерживает динамические тени и работает довольно быстро. Плохо вписывается в код отрисовки — обычно приходится добавлять его в качестве фона и изменять отступы.
  2. Нарисуйте тени с помощью 9patches. Лучшее качество, вероятно, быстрее, чем градиенты. Не поддерживает динамические тени, а также требует изменения отступов и фона.
  3. Нарисуйте тени с помощью RenderScript. Лучшее качество, динамические тени и простая интеграция. Это самый медленный подход, и вам нужно настроить RenderScript. Carbon рисует тени с помощью RenderScript.
person Zielony    schedule 06.01.2016