ArcSeekBar
ArcSeekBar для Android — это дугообразный ползунок прогресса с полностью настраиваемыми параметрами.
ArcSeekBar основан на библиотеке CircleProgressView, но был доработан и улучшен. Хотя большая часть функций CircleProgressView поддерживается ArcSeekBar, он предлагает более детальные настройки.
Создание ArcSeekBar вместо модификации CircleProgressView было обусловлено тем, что некоторые анимационные эффекты в CircleProgressView не подходят для SeekBar. ArcSeekBar был создан на основе CircleProgressView с удалением некоторых элементов и последующим расширением и улучшением. Выбор между этими двумя библиотеками зависит от конкретных требований проекта.
GIF-демонстрация
Вы также можете скачать демонстрационное приложение, чтобы оценить его работу.
Использование
repositories {
//...
mavenCentral()
}
implementation 'com.github.jenly1314:arcseekbar:1.1.1'
Свойства ArcSeekBar (по умолчанию используется градиентная заливка)
Свойство | Тип значения | По умолчанию | Описание |
---|---|---|---|
arcStrokeWidth | dimension | 12dp | Ширина обводки дуги |
arcStrokeCap | enum | ROUND | Стиль линии обводки |
arcNormalColor | color | #C8C8C8 | Цвет дуги по умолчанию |
arcProgressColor | color | #4FEAAC | Цвет дуги прогресса |
arcStartAngle | integer | 270 | Начальный угол (направление 12 часов) |
arcSweepAngle | integer | 360 | Диапазон угла поворота |
arcMax | integer | 100 | Максимальное значение прогресса |
arcProgress | integer | 0 | Текущее значение прогресса |
arcDuration | integer | 500 | Длительность анимации |
arcLabelText | string | — | Текст метки, по умолчанию отображается процент |
arcLabelTextColor | color | #333333 | Цвет текста метки |
arcLabelTextSize | dimension | 30sp | Размер текста метки |
arcLabelPaddingTop | dimension | 0dp | Внутреннее верхнее поле текста |
arcLabelPaddingBottom | dimension | 0dp | Внутреннее нижнее поле текста |
arcLabelPaddingLeft | dimension | 0dp | Внутреннее левое поле текста |
arcLabelPaddingRight | dimension | 0dp | Внутреннее правое поле текста |
arcShowLabel | boolean | true | Отображать ли текст |
arcShowTick | boolean | true | Отображать ли деления |
arcTickStrokeWidth | dimension | 10dp | Толщина линии делений |
arcTickPadding | dimension | 2dp | кольцевая отметка и интервал между кольцами |
| arcTickSplitAngle | integer | 5 | угол интервала между отметками |
| arcBlockAngle | integer | 1 | угол отметки |
| arcTickOffsetAngle | integer | 0 | угол смещения отметки |
| arcThumbStrokeWidth | dimension | 10dp | ширина кисти для рисования кнопки перетаскивания |
| arcThumbColor | color | #FFE8D30F | цвет кнопки перетаскивания**|**
| arcThumbRadius | dimension | 8dp | радиус кнопки перетаскивания**|
| arcThumbRadiusEnlarges | dimension | 2dp | увеличение радиуса кнопки при касании**|
| arcShowThumb | boolean | true | показывать ли кнопку перетаскивания**|
| arcThumbDrawable | reference | | изображение кнопки перетаскивания (приоритет arcThumbDrawable выше, чем у arcThumbColor) |
| arcAllowableOffsets | dimension | 10dp | допустимое смещение при касании: чем больше смещение, тем меньше точность касания**|
| arcEnabledDrag | boolean | true | включить изменение прогресса путём перетаскивания**|
| arcEnabledSingle | boolean | true | включить изменение прогресса нажатием**|
Пример макета:
<com.king.view.arcseekbar.ArcSeekBar
android:id="@+id/arcSeekBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:arcEnabledDrag="true"/>
Пример кода:
// Прогресс изменения слушателя
arcSeekBar.setOnChangeListener(listener);
// Установить прогресс
arcSeekBar.setProgress(progress);
// Показать анимацию прогресса (прогресс, время анимации)
arcSeekBar.showAnimation(80,3000);
Для получения дополнительной информации о применении см. примеры использования в приложении или непосредственно в документации API.
arcThumbDrawable
.arcTickOffsetAngle
.Если вам нравится ArcSeekBar или вы считаете, что ArcSeekBar вам помог, вы можете поддержать его, поставив «Star». Ваша поддержка — моя мотивация, спасибо
Вы также можете отсканировать следующий QR-код, чтобы поддержать автора:
Мой блог | GitHub | Gitee | CSDN | Блог-сад |
---|---|---|---|---|
Блог Дженли | jenly1314 | jenly1314 | jenly121 | jenly |
Публичный аккаунт WeChat | Электронная почта Gmail |
---|
Примечание: в тексте запроса присутствуют ссылки на внешние ресурсы, которые не были переведены. QQ邮箱 | QQ群 | QQ群 | |:---------------------|:-----------------------------------------------------------------------------|:------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------| | Jenly666 (http://weixin.qq.com/r/wzpWTuPEQL4-ract92-R) | jenly1314@gmail.com | jenly1314@vip.qq.com | 20867961 | 64020761 |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )