TickSeekBar
Это библиотека для создания пользовательского компонента SeekBar для Android. Кроме того, если вам нужен индикатор в верхней части SeekBar, посмотрите другую библиотеку SeekBar.
Предварительный просмотр
Скриншоты
Скриншот | Описание |
---|---|
![]() |
|
![]() |
|
![]() |
|
![]() |
Сканировать QR-код для загрузки:
implementation 'com.github.warkiz.tickseekbar:tickseekbar:0.1.4'
<com.warkiz.tickseekbar.TickSeekBar
android:id="@+id/listener"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tsb_ticks_count="5"
app:tsb_thumb_color="@color/colorAccent"
app:tsb_thumb_size="16dp"
app:tsb_show_tick_marks_type="oval"
app:tsb_tick_marks_color="@color/colorAccent"
app:tsb_tick_marks_size="8dp"
app:tsb_show_tick_texts="above"
app:tsb_tick_texts_color="@color/color_pink"
app:tsb_tick_texts_size="13sp"
app:tsb_track_background_color="@color/color_gray"
app:tsb_track_background_size="2dp"
app:tsb_track_progress_color="@color/color_blue"
app:tsb_track_progress_size="3dp" />
TickSeekBar seekBar = TickSeekBar
.with(getContext())
.max(200)
.min(10.2f)
.progressValueFloat(true)
.progress(33)
.tickCount(7)
.showTickMarksType(TickMarkType.DIVIDER)
.tickMarksColor(getResources().getColor(R.color.color_blue))
.tickMarksSize(6)//dp
.tickTextsSize(13)//sp
.showTickTextsPosition(TextPosition.ABOVE)
.tickTextsColorStateList(getResources().getColorStateList(R.color.selector_tick_texts_3_color))
.thumbColor(Color.parseColor("#ff0000"))
.thumbSize(14)
.trackProgressColor(getResources().getColor(R.color.colorAccent))
.trackProgressSize(4)
.trackBackgroundColor(getResources().getColor(R.color.color_gray))
.trackBackgroundSize(2)
.build();
Цвет каждой секции track на компоненте seekbar можно настроить:
sectionSeekBar.customSectionTrackColor(new ColorCollector() {
@Override
public boolean collectSectionTrackColor(int[] colorIntArr) {
//the length of colorIntArray equals section count
colorIntArr[0] = getResources().getColor(R.color.color_blue, null);
colorIntArr[1] = getResources().getColor(R.color.color_gray, null);
colorIntArr[2] = Color.parseColor("#FF4081");
...
return true; //True if apply color , otherwise no change
}
});
Для thumb и tick можно использовать StateListDrawable или ColorStateList, а также для текста под tick. Формат следующий:
Изображение для thumb в формате selector:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--this drawable is for thumb when pressing-->
<item android:drawable="@mipmap/ic_launcher_round" android:state_pressed="true" />
<!--for thumb in normal-->
<item android:drawable="@mipmap/ic_launcher" />
</selector>
Цвет для thumb в формате selectorr:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--this color is for
``` **thumb который находится в состоянии нажатия**
<item android:color="@color/colorAccent" android:state_pressed="true" />
<!--для thumb который находится в нормальном состоянии-->
<item android:color="@color/color_blue" />
</selector>
**Изображение галочки (tickMarks) selector:**
```xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--это изображение для галочек при нажатии-->
<item android:drawable="@mipmap/ic_launcher_round" android:state_selected="true" />
<!--для галочек в обычном состоянии-->
<item android:drawable="@mipmap/ic_launcher" />
</selector>
Селектор цвета галочек (tickMarks):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--этот цвет для галочек, которые находятся слева от большого пальца-->
<item android:color="@color/colorAccent" android:state_selected="true" />
<!--для галочек, находящихся справа от большого пальца-->
<item android:color="@color/color_gray" />
</selector>
Цвет текста галочек selector:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--этот цвет для текстов, которые находятся слева от большого пальца-->
<item android:color="@color/colorAccent" android:state_selected="true" />
<!--для текста галочки, который остановился под большим пальцем -->
<item android:color="@color/color_blue" android:state_hovered="true" />
<!--для текстов, которые находятся справа от большого пальца-->
<item android:color="@color/color_gray" />
</selector>
seekBar.setOnSeekChangeListener(new OnSeekChangeListener() {
@Override
public void onSeeking(SeekParams seekParams) {
Log.i(TAG, seekParams.seekBar);
Log.i(TAG, seekParams.progress);
Log.i(TAG, seekParams.progressFloat);
Log.i(TAG, seekParams.fromUser);
//когда количество галочек > 0
Log.i(TAG, seekParams.thumbPosition);
Log.i(TAG, seekParams.tickText);
}
@Override
public void onStartTrackingTouch(TickSeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(TickSeekBar seekBar) {
}
});
-dontwarn com.warkiz.tickseekbar.**
Спасибо: С тех пор как я опубликовал QR-код в документации, я получил поддержку от некоторых друзей из Китая, хотя сумма небольшая, но некоторые слова поддержки и ободрения все равно заставляют меня чувствовать себя счастливым, большое спасибо.
Спасибо всем моим друзьям, которые поддерживали меня раньше. Если вы хотите вознаградить меня в следующий раз, вы можете написать свой адрес GitHub, и я размещу ссылку здесь, чтобы мы могли поддерживать друг друга.
Благодарю вас за вашу поддержку.
Не стесняйтесь обращаться ко мне, если у вас возникнут проблемы с этим проектом:
Copyright (C) 2017 zhuangguangquan warkiz
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )