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

OSCHINA-MIRROR/chinasoft_ohos-IndicatorSeekBar

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

IndicatorSeekBar

Проект

  • Название проекта: IndicatorSeekBar.
  • Серия: openharmony, компонент адаптирован из сторонних источников.
  • Функция: это настраиваемая скользящая панель прогресса для openharmony.
  • Состояние переноса: основные функции реализованы.
  • Различия при вызове: при использовании IndicatorSeekBar необходимо добавить слой DependentLayout в родительский макет.
  • Версия разработки: SDK6, DevEco Studio2.2 beta1.
  • Базовая версия: Release 2.1.1.

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

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

Bar sample

Bar sample Bar sample
Bar sample Bar sample
Bar sample Bar sample

Инструкция по установке

  1. В файле build.gradle в корневом каталоге проекта:
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/release/'
        }
    }
}
  1. В файле build.gradle модуля entry:
dependencies {
    implementation 'com.gitee.chinasoft_ohos:IndicatorSeekbar:1.0.0'   
}

Проект можно запустить напрямую на sdk6 и DevEco Studio 2.2 beta1. Если не запускается, удалите файлы .gradle, .idea, build, gradle, build.gradle и создайте новый проект с соответствующей версией. Затем скопируйте файлы из нового проекта в корневой каталог.

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

xml

<com.warkiz.widget.IndicatorSeekBar
    ohos:height="match_content"
    ohos:width="match_parent"
    app:isb_max="100"
    app:isb_min="-1.0"
    app:isb_progress="25"
    app:isb_seek_smoothly="true"
    app:isb_ticks_count="5"
    app:isb_show_tick_marks_type="1"
    app:isb_tick_marks_size="13vp"
    app:isb_tick_marks_drawable="$media:ic_launcher"
    app:isb_show_tick_texts="true"
    app:isb_tick_texts_size="15fp"
    app:isb_tick_texts_color="$color:color_blue"
    app:isb_thumb_color="$color:color_green"
    app:isb_thumb_size="20vp"
    app:isb_show_indicator="2"
    app:isb_indicator_color="$color:color_gray"
    app:isb_indicator_text_color="$color:colorAccent"
    app:isb_indicator_text_size="18fp"
    app:isb_track_background_color="$color:color_gray"
    app:isb_track_background_size="2vp"
    app:isb_track_progress_color="$color:color_blue"
    app:isb_track_progress_size="4vp" />

Java


 IndicatorSeekBar seekbar = IndicatorSeekBar
                .with(getContext())
                .max(110)
                .min(10)
                .progress(53)
                .tickCount(7)
                .showTickMarksType(TickMarkType.OVAL)
                .tickMarksColor(getColor(ResourceTable.Color_color_blue))
                .tickMarksSize(13)//vp
                .showTickTexts(true)
                .tickTextsColor(getColor(ResourceTable.Color_color_pink))
                .tickTextsSize(13)//fp
                .tickTextsTypeFace(Font.MONOSPACE)
                .showIndicatorType(IndicatorType.ROUNDED_RECTANGLE)
                .indicatorColor(getColor(ResourceTable.Color_color_blue))
                .indicatorTextColor(new Color(Color.getIntColor("#ffffff")))
                .indicatorTextSize(13)//fp
                .thumbColor(getColor(ResourceTable.Color_colorAccent))
                .thumbSize(14)
                .trackProgressColor(new Color(mContext.getColor(ResourceTable.Color_colorAccent)))
                .trackProgressSize(4)
                .trackBackgroundColor(new Color(mContext.getColor(ResourceTable.Color_color_gray)))
                .trackBackgroundSize(2)
                .build();
  • Индикатор всегда остаётся на месте Чтобы индикатор оставался на месте, поместите IndicatorSeekBar внутрь IndicatorStayLayout. Перед этим убедитесь, что вы используете свойства для отображения индикатора.

Xml

<com.warkiz.widget.IndicatorStayLayout
    ohos:height="match_content"
    ohos:width="match_parent">
    <!--your layout-->
    <com.warkiz.widget.IndicatorSeekBar
        ohos:height="match_content"
        ohos:width="match_parent"
        app:isb_show_indicator="rectangle" <!--Отображение индикатора должно быть не none-->
        ....../>
    <!--your layout-->
</com.warkiz.widget.IndicatorStayLayout>

Java

IndicatorSeekBar seekbar = IndicatorSeekBar
                .with(getContext())
                .max(50) **Пользовательский индикатор текста**

Чтобы установить формат строки с заполнителями для отображения текста индикатора, можно использовать строку с форматом `${PROGRESS}` или `${TICK_TEXT}`. Текст индикатора будет изменён.

Например:
Если вы хотите отобразить текст индикатора прогресса с суффиксом в виде процента, используйте код:

```Java
seekbar.setIndicatorTextFormat("${PROGRESS} %")

Если вы хотите добавить префикс «I am» к тексту галочки, используйте следующий код:

seekbar.setIndicatorTextFormat("I am ${TICK_TEXT}")

Пользовательские цвета блоков дорожки на индикаторе

Можно настроить цвет каждого блока дорожки на индикаторе SeekBar:

seekBar.customSectionTrackColor(new ColorCollector() {
    @Override
    public boolean collectSectionTrackColor(int[] colorIntArr) {
        //the length of colorIntArray equals section count
        colorIntArr[0] = getColor(ResourceTable.Color_color_blue);
        colorIntArr[1] = getColor(ResourceTable.Color_color_gray);
        colorIntArr[2] = Color.getIntColor("#FF4081");
        ...
        return true; //True if apply color , otherwise no change
    }
});

Поддержка изображений и цветов типа Selector

Для ползунка и метки можно установить StateElement. Метка также поддерживает StateElement:

  • Ползунок:

    • Изображение:
    
    
```
  • Цвет:
<?xml version="1.0" encoding="utf-8"?>
<state-container xmlns:ohos="http://schemas.huawei.com/res/ohos">
 <!--this color is for thumb which is at pressing status-->
 <item ohos:element="$color:colorAccent" ohos:state="component_state_pressed" />
 <!--for thumb which is at normal status-->
 <item ohos:element="$color:color_blue" ohos:state="component_state_empty"/>
</state-container>
  • Метка:

    • Изображение:
    
    
```
  • Цвет:
<?xml version="1.0" encoding="utf-8"?>
<state-container xmlns:ohos="http://schemas.huawei.com/res/ohos">
 <!--this color is for marks those are at left side of thumb-->
 <item ohos:element="$color:colorAccent" ohos:state="component_state_selected" />
 <!--for marks those are at right side of thumb-->
 <item ohos:element="$color:color_gray" ohos:state="component_state_empty"/>
</state-container>
  • Текст метки:

    
    
```

Слушатель

seekBar.setOnSeekChangeListener(new OnSeekChangeListener() {
            @Override
            public void onSeeking(SeekParams p) {
                Log.i(TAG, seekParams.seekBar);
                Log.i(TAG, seekParams.progress);
                Log.i(TAG, seekParams.progressFloat);
                Log.i(TAG, seekParams.fromUser);
                //when tick count > 0
                Log.i(TAG, seekParams.thumbPosition);
                Log.i(TAG, seekParams.tickText);
            }

            @Override
            public void onStartTrackingTouch(IndicatorSeekBar seekBar) {
            }

Комментарии ( 0 )

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

Введение

Это библиотека пользовательского SeekBar. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/chinasoft_ohos-IndicatorSeekBar.git
git@gitlife.ru:oschina-mirror/chinasoft_ohos-IndicatorSeekBar.git
oschina-mirror
chinasoft_ohos-IndicatorSeekBar
chinasoft_ohos-IndicatorSeekBar
master