Блик на изображении
Расширение shine добавляет к изображению в элементе div-image анимированный блик: по изображению проходит полоса градиента. Расширение поддерживается на Android и iOS.
Пример
{
"type": "image",
"image_url": "https://example.com/image.png",
"width": {
"type": "fixed",
"value": 100
},
"height": {
"type": "fixed",
"value": 100
},
"extensions": [
{
"id": "shine",
"params": {
"colors": [
"#00FFFFFF",
"#FFFFFFFF",
"#00FFFFFF"
],
"locations": [
0,
0.5,
1
],
"angle": 45,
"duration": 1000,
"interval": 1000,
"delay": 500,
"cycle_count": 3,
"on_cycle_start_actions": [
{
"log_id": "shine_cycle_started",
"url": "div-action://set_variable?name=shine_cycles&value=@{shine_cycles+1}"
}
]
}
}
]
}
В этом примере блик проходит по изображению три раза, а в начале каждого прохода целочисленная переменная shine_cycles увеличивается на единицу.
Параметры
Все параметры необязательные. Параметры, кроме on_cycle_start_actions, поддерживают выражения.
|
Параметры |
Описание |
|
|
Идентификатор расширения. |
|
|
Включает блик. Если установлено значение |
|
|
Массив цветов градиента. |
|
|
Положения цветов в градиенте: числа от |
|
|
Угол наклона градиента в градусах. По умолчанию: |
|
|
Длительность одного прохода блика в миллисекундах. |
|
|
Пауза между проходами в миллисекундах. По умолчанию: |
|
|
Задержка перед первым проходом в миллисекундах. По умолчанию: |
|
|
Количество проходов блика. Значение |
|
|
Массив действий, которые выполняются в начале каждого прохода. |
Задавайте colors и locations вместе и с одинаковым количеством значений: если количество различается, блик не отображается. Цвета, положения цветов и длительность по умолчанию различаются на Android и iOS, поэтому задавайте эти параметры явно.
Особенности работы
- Расширение применяется только к элементу
div-image. - Блик виден только поверх непрозрачных участков изображения.
Подключение
build.gradle
dependencies {
implementation "com.yandex.div:div-shine:${versions.divkit}"
}
В коде:
val divConfiguration = DivConfiguration.Builder(imageLoader)
.extension(DivShineExtensionHandler())
.build()
Необязательные параметры конструктора:
logger— получает ошибки разбора параметров расширения.pauseShineObservable— позволяет приложению приостанавливать и возобновлять анимацию блика.
DivKitComponents(
...
extensionHandlers: [
ShineExtensionHandler()
]
)
Узнать больше
Вы можете обсуждать интересующие вас темы в сообществе пользователей DivKit в Telegram: https://t.me/divkit_community_ru.