1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zhuangguangquan-TickSeekBar

Клонировать/Скачать
README_zh.md 9.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 00:36 3a74493

TickSeekBar

Это библиотека для создания пользовательского компонента SeekBar для Android. Кроме того, если вам нужен индикатор в верхней части SeekBar, посмотрите другую библиотеку SeekBar.

Предварительный просмотр

Предварительный просмотр

Скриншоты

Скриншоты

Скриншот Описание

Демонстрация

Скачать

Сканировать QR-код для загрузки:

Инициализация

implementation 'com.github.warkiz.tickseekbar:tickseekbar:0.1.4'

Использование

XML

<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" />

Java

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

Цвет каждой секции 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.**

Свойства

attr.xml

Поддержка & Контакты

Спасибо: С тех пор как я опубликовал QR-код в документации, я получил поддержку от некоторых друзей из Китая, хотя сумма небольшая, но некоторые слова поддержки и ободрения все равно заставляют меня чувствовать себя счастливым, большое спасибо.

Спасибо всем моим друзьям, которые поддерживали меня раньше. Если вы хотите вознаградить меня в следующий раз, вы можете написать свой адрес GitHub, и я размещу ссылку здесь, чтобы мы могли поддерживать друг друга.

Благодарю вас за вашу поддержку.

Не стесняйтесь обращаться ко мне, если у вас возникнут проблемы с этим проектом:

  1. Создайте проблему.
  2. Отправьте мне письмо по адресу «warkiz».concat("4j").concat("@").concat("gmail.com")

Лицензия

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zhuangguangquan-TickSeekBar.git
git@api.gitlife.ru:oschina-mirror/zhuangguangquan-TickSeekBar.git
oschina-mirror
zhuangguangquan-TickSeekBar
zhuangguangquan-TickSeekBar
master