IndicatorSeekBar
Предварительный просмотр
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/release/'
}
}
}
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();
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 )