Как я могу получить эффект пульсации в простом линейном / относительном макете при касании макета?
Я пробовал установить фон макета примерно так:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight" >
<item android:drawable="@android:color/white"/>
</ripple>
Однако при прикосновении к макету я вижу только простой белый фон и не вижу эффекта ряби. Что я делаю не так?
Редактировать:
Для справки вот мой XML-файл макета:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="250dp"
android:layout_height="250dp"
android:background="@drawable/test"
android:clickable="true">
</RelativeLayout>
<item android:drawable="@android:color/white"/>
раздел. Поэтому я не уверен, как это должно работать, если мне нужен цвет фона на макете. Поместить это поверх другого макета с цветом фона также не получится!Ответы:
Установите эти свойства в макете (если в макете используется белый / светлый фон по умолчанию):
В этом случае вам не нужен настраиваемый чертеж.
Однако, если ваш макет имеет черный / темный фон, вам придется создать свою собственную рябь, которую можно рисовать, например:
А затем установите эту рябь как свойство android: background .
Вы можете увидеть множество примеров такого рода ряби в AOSP: здесь
источник
background
?Я добавляю это в дополнение к ответу Игоря Ганапольского на случай, если кто-то хочет иметь макет с другим цветом, а также иметь эффект ряби. Вы просто создаете эффект ряби в чертежах вроде этого:
затем укажите его в качестве фона вашего макета или любой кнопки, о которой Игорь Ганапольский упомянул в своем ответе.
источник
Вы должны изменить следующий фрагмент кода в любом виджете (
TextView
/Button
), и вы можете реализовать эффект пульсации :И тебе хорошо идти.
источник
Оказывается, это работает как задумано. Стандартное значение colorControlHighlight темы Материалов -
#40ffffff
. Так что на белом фоне это не будет отображаться. Можно изменить цвет выделения на другой и / или изменить цвет фона объекта.Спасибо всем (особенно Аланву за то, что указал мне в правильном направлении).
источник
colorControlHighlight
свойstyles.xml
. Например, добавьте его в свою собственную тему.Установите
android:clickable="true"
на свой макет.источник
Это пример нажатия на образец макета с эффектом пульсации:
источник
Используйте этот ripple.xml в папке Drawable , затем назначьте его как View's
android: background = "@ drawable / ripple"
android: clickable = "true"
источник
Просто добавьте эффект пульсации по умолчанию с помощью
android:background="?selectableItemBackground"
Подобно:
источник
Поместите это в свой макет:
Примечание. В документации по API есть ошибка. Работает только на API> = 23
Для всех уровней API используйте это Решение
источник
Я пробовал все эти ответы, и у меня ничего не получалось, поэтому я решил создать следующий стиль:
Затем я применил свой линейный макет:
источник