一个美丽的 Android 自定义 SeekBar,其在寻找时会显示进度的气泡视图。
A beautiful Android custom seek bar, which has a bubble view with progress appearing upon when seeking. Highly customizable, mostly demands has been considered. star or pull request will be welcomed
dependencies {
// lite version (recommended)
// e.g. implementation 'com.xw.repo:bubbleseekbar:3.20-lite'
implementation 'com.xw.repo:bubbleseekbar:${LATEST_VERSION}-lite'
// enhanced version
// e.g. implementation 'com.xw.repo:bubbleseekbar:3.20'
// implementation 'com.xw.repo:bubbleseekbar:${LATEST_VERSION}'
}
…
<com.xw.repo.BubbleSeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:bsb_auto_adjust_section_mark="true"
app:bsb_second_track_color="@color/color_blue"
app:bsb_section_count="5"
app:bsb_section_text_position="below_section_mark"
app:bsb_show_section_mark="true"
app:bsb_show_section_text="true"
app:bsb_show_thumb_text="true"
app:bsb_thumb_text_size="18sp"
app:bsb_touch_to_seek="true"/>
…
Check out the demo for more details. Or download the apk: sample.apk
There are two versions of this library.The differences as follow:
version init getter/setter lite xml min, max, progress enhanced xml, java all attrslite version is recommended.
You must correct the offsets by setting ScrollListener when BubbleSeekBar's parent view is scrollable
(such as ScrollView, except ViewPager), otherwise, the appearing position of the bubble may be wrong. For example:
mContainer.setOnYourContainerScrollListener(new OnYourContainerScrollListener() {
@Override
public void onScroll() {
// call this method to correct offsets
mBubbleSeekBar.correctOffsetWhenContainerOnScrolling();
}
});
bsb_section_text_position
has been set to below_section_mark at first, then follow the example below in your java code: mBubbleSeekBar.setCustomSectionTextArray(new BubbleSeekBar.CustomSectionTextArray() {
@NonNull
@Override
public SparseArray<String> onCustomize(int sectionCount, @NonNull SparseArray<String> array) {
array.clear();
array.put(1, "bad");
array.put(4, "ok");
array.put(7, "good");
array.put(9, "great");
return array;
}
});
BTW, the attr bsb_show_thumb_text will be set to false automatically for avoiding the text coverage display problems.
bsb_always_show_bubble is not supported in the RecyclerView, ListView and GridView. Copyright 2017 woxingxiao
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.
这个能引用吗?
could not get resource
使用 Application 创建后显示 bubble 时报错
我在父容器为约束布局内使用,悬浮气泡位置偏移了应该怎么办呢?设置correctOffsetWhenContainerOnScrolling无效
seekbar可以竖直方向?
在PopupWindow中使用,拇指水滴与实际布局分离
频繁滑动就会卡顿
setEnabled(false) looks exactly the same as setEnabled(true)
Issue in progress when (max-min)/sectionCount not an integer
How to set section text interval in float?