как настроить тень на просмотр в Android?
Я хочу знать, как добавить теневой слой в любой общий вид в Android. например: предположим, что у меня есть макет xml, показывающий что-то вроде этого ..
<LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" <Button.... ...
Теперь, когда он отображается, я хочу, чтобы вокруг него была тень.
- Jar Mismatch Нашел 2 версии android-support-v4.jar в списке зависимостей
- Android запускает музыкальный плеер, используя намерение
- Android 4.2 нарушил мой шифрованный / дешифрованный код, и предоставленные решения не работают
- Дважды нажмите кнопку «Назад», чтобы выйти из операции
- Android Studio - как я могу сделать AVD с ARM вместо HAXM?
- Кнопка мультитач для работы с Android
- Получить высоту по долготе и широте в Android
- Значок навигации панели инструментов не установлен
- Размер кучи Android на разных телефонах / устройствах и версиях ОС
- Ионная ошибка при создании Android при загрузке Gradle
- Как я могу анимировать представление в Android и оставить его в новой позиции / размере?
- Как сгруппировать RadioButton из разных LinearLayouts?
- Преобразование String в Uri
Есть простой трюк, используя два представления, которые образуют тень.
Надеюсь, эта помощь.
Лучший способ создать тень – использовать изображение 9patch
в качестве фона представления (или ViewGroup
которое обертывает представление).
Первый шаг – создать png-изображение с тенью вокруг него. Я использовал фотошоп для создания такого изображения. Это очень просто.
- Создайте новое изображение с помощью Photoshop.
- Добавьте слой и создайте черный квадрат 4×4.
- Создайте тень на слое, выбрав слой в проводнике слоев и нажав кнопку fx и выбрав тень.
- Экспортируйте изображение как png.
Следующим шагом будет создание рисунков с 9 патчами с этого изображения.
- Открыть
draw9patch
отandroid-sdk/tools
- Открыть изображение в
draw9patch
- Создайте 4 черные линии на четырех сторонах квадрата, как
shadow.9.png
ниже, а затем сохраните изображение какshadow.9.png
.
Теперь вы можете добавить эту тень в качестве фона видов, к которым вы хотите добавить тень. Добавьте shadow.9.png
в res/drawables
. Теперь добавьте его в качестве фона:
Недавно я написал сообщение в блоге, которое объясняет это подробно и включает в себя изображение 9patch, которое я использую для создания тени.
Предполагая, что u будет использовать линейную компоновку (я рассматривал вертикальную линейную компоновку) .. и имею вид чуть ниже линейного макета. Теперь для этого представления предусмотрен цвет начала и конца цвета. Я также хотел получить эту вещь, ее работая для меня. Если вам нужен еще лучший эффект, тогда просто работайте вокруг цвета начала и конца.
activity_main
layout_back_bgn.xml
shadow.xml
Я попытался опубликовать изображение, которое у меня есть после использования вышеуказанного кода, но stackoverflow не позволяет мне coz, у меня нет репутации. Простите об этом.
Вы можете использовать высоту, доступную с уровня API 21
Высота представления, представленного свойством Z, определяет визуальный внешний вид его тени: представления с более высокими значениями Z бросают больше, более мягкие тени. Представления с более высокими значениями Z закрывают представления с более низкими значениями Z; однако значение Z представления не влияет на размер представления. Чтобы установить высоту представления:
в определении макета, используйте
android:elevation
атрибут. Чтобы установить высоту представления в коде действия, используйте
View.setElevation()
метод.
Источник
Вот моя дрянная версия решения … Это модификация найденного здесь решения
Мне не нравилось, как углы выглядят так, что я все их бледнел …
-
-
-
-
-
-
Используйте только под LinearLayout
Другой метод
создать «rounded_corner_bg.xml» в папке / drawable
-
-
Чтобы использовать этот макет android:background="@drawable/rounded_corner_bg"