TickSeekBar
Это настраиваемая библиотека SeekBar для Android. Также, если вам нужен индикатор для отображения верхней части панели поиска, пожалуйста, посмотрите другую библиотеку (https://github.com/warkiz/IndicatorSeekBar).
Сканируйте 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();
Цвет каждого блока панели поиска также может быть настроен.
sectionSeekBar.customSectionTrackColor(new ColorCollector() {
@Override
public boolean collectSectionTrackColor(int[] colorIntArr) {
//длина colorIntArray равна количеству секций
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, если применить цвет, иначе не изменится
}
});
Вы можете установить StateListDrawable или ColorStateList для большого пальца, tickMarks; также поддерживается ColorStateList для tickTexts. Формат использования в соответствии с:
Селектор для большого пальца:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--этот drawable для большого пальца при нажатии-->
<item android:drawable="@mipmap/ic_launcher_round" android:state_pressed="true" /> **Для пальца в обычном состоянии:**
Селектор цвета для пальца:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--этот цвет для пальца, который находится в нажатом состоянии-->
<item android:color="@color/colorAccent" android:state_pressed="true" />
<!--для пальца, который в обычном состоянии-->
<item android:color="@color/color_blue" />
</selector>
Drawable для TickMarks селектора:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--это drawable для TickMarks при нажатии-->
<item android:drawable="@mipmap/ic_launcher_round" android:state_selected="true" />
<!--для TickMarks в обычном-->
<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>
Цвет для TickTexts селектора:
<?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 )