Size: a a a

Android Developers

2020 March 08

VK

Vitalii Krokhalev in Android Developers
Alidibir Akhbulatov
спасибо, посмотрю, но не хотелось бы тащить эту штуку в проект. попробую еще с nine patch, как посоветовали выше
Смотри, nine patch - это, как я понимаю, растр. А elevation - работает на основе канваса, скорее всего, что явно лучше, если требуется визуальный эффект нажатия.
Что касается либы, так там просто папки с константами для dp и больше ничего. Сам использую)
Но ты можешь её даже не подключать, а сам создать эти папки и добавить туда необходимые константы.
источник

VK

Vitalii Krokhalev in Android Developers
Для них предусмотрены специальные названия
источник

QH

Quantum Harmonizer in Android Developers
Vitalii Krokhalev
Смотри, nine patch - это, как я понимаю, растр. А elevation - работает на основе канваса, скорее всего, что явно лучше, если требуется визуальный эффект нажатия.
Что касается либы, так там просто папки с константами для dp и больше ничего. Сам использую)
Но ты можешь её даже не подключать, а сам создать эти папки и добавить туда необходимые константы.
Лучше/хуже — примитивный подход. У всего свои плюсы и минусы.
источник

VK

Vitalii Krokhalev in Android Developers
Quantum Harmonizer
Лучше/хуже — примитивный подход. У всего свои плюсы и минусы.
Я только про то, что elevation - сразу из коробки работает, плюс сразу анимируется при нажатии на кнопку, например. Там ripple-эффект запускается, плюс elevation увеличивается. А растр - это просто растр.
источник

VK

Vitalii Krokhalev in Android Developers
Зависит от того, что требуется в конкретной ситуации)
источник

VK

Vitalii Krokhalev in Android Developers
Плюс elevation ещё в том, что тень не изменяет размеры View
источник

VK

Vitalii Krokhalev in Android Developers
А если растр использовать, например, для кнопки (как background), то потом текст кнопки нужно выравнивать внутри, так как растровая тень тоже учитывается.
источник

VK

Vitalii Krokhalev in Android Developers
Это костыль
источник

R

in Android Developers
Vitalii Krokhalev
Я только про то, что elevation - сразу из коробки работает, плюс сразу анимируется при нажатии на кнопку, например. Там ripple-эффект запускается, плюс elevation увеличивается. А растр - это просто растр.
только elevation никакого отношения к ripple не имеет))
источник

VK

Vitalii Krokhalev in Android Developers
только elevation никакого отношения к ripple не имеет))
Упомянул просто)
Просто elevation можно отдельно анимировать, а для растра особо ничего... Только scale, alpha...
источник

AA

Alidibir Akhbulatov in Android Developers
Vitalii Krokhalev
А если растр использовать, например, для кнопки (как background), то потом текст кнопки нужно выравнивать внутри, так как растровая тень тоже учитывается.
В Андроиде, имхо, вообще беда в плане работы с тенями. Один атрибут elevation и все. При этом нет атрибутов для сдвига тени, изменения цвета. Добавленный spotShadowColor и ambientShadowColor в API 28, как назло, без бэкпорта на старые версии
источник

А

Артёмка in Android Developers
Alidibir Akhbulatov
В Андроиде, имхо, вообще беда в плане работы с тенями. Один атрибут elevation и все. При этом нет атрибутов для сдвига тени, изменения цвета. Добавленный spotShadowColor и ambientShadowColor в API 28, как назло, без бэкпорта на старые версии
Тут ты немного ошибаешься
источник

А

Артёмка in Android Developers
Точнее не немного, а хорошо так
источник

А

Артёмка in Android Developers
Alidibir Akhbulatov
В Андроиде, имхо, вообще беда в плане работы с тенями. Один атрибут elevation и все. При этом нет атрибутов для сдвига тени, изменения цвета. Добавленный spotShadowColor и ambientShadowColor в API 28, как назло, без бэкпорта на старые версии
источник

AA

Alidibir Akhbulatov in Android Developers
Есть BottomSheetDialog с закругленными верхними краями. Все ок, пока не разместить c краю View, которая перекрывает закругленный угол. Можно ли это пофиксить не задавая CardView корневым layout'ом?
источник

VK

Vitalii Krokhalev in Android Developers
Для теней (в том числе цветных) есть библиотеки, там всяческие shadowLayout-ы. Но толку от них мало, эти тени статичные, анимировать их не выйдет. Я пробовал, лагает. Да и зачастую проще использовать cardView с их тенью (хотя у них тоже вроде тень не цветная). А если всё-таки нужны анимированные цветные тени для кнопок, то придется делать animated-vector + animated-selector.
источник

А

Артёмка in Android Developers
Vitalii Krokhalev
Для теней (в том числе цветных) есть библиотеки, там всяческие shadowLayout-ы. Но толку от них мало, эти тени статичные, анимировать их не выйдет. Я пробовал, лагает. Да и зачастую проще использовать cardView с их тенью (хотя у них тоже вроде тень не цветная). А если всё-таки нужны анимированные цветные тени для кнопок, то придется делать animated-vector + animated-selector.
А Paint с shadowLayer?
источник

VK

Vitalii Krokhalev in Android Developers
Тяжеловато их на Андроиде делать
источник

А

Артёмка in Android Developers
Alidibir Akhbulatov
Есть BottomSheetDialog с закругленными верхними краями. Все ок, пока не разместить c краю View, которая перекрывает закругленный угол. Можно ли это пофиксить не задавая CardView корневым layout'ом?
OutlineProvider = background
источник

AA

Alidibir Akhbulatov in Android Developers
Артёмка
OutlineProvider = background
в данном случае, хотелось бы обойтись только xml без создания OutlineProvider. тогда уж проще в CardView обернуть
источник