一个拇指自定义rangeseekbar android

Posted

技术标签:

【中文标题】一个拇指自定义rangeseekbar android【英文标题】:Custom rangeseekbar android with one thumb 【发布时间】:2014-03-27 06:33:00 【问题描述】:

我想得到这种类型的输出。我正在使用自定义rangeseekbar。(来自this link的参考)

我有这个输出。

但我想得到这种类型的输出..

黄色选择器是范围搜索栏的一种。我想创建自定义范围搜索栏,所以请帮助我。 我已经创建了两个拇指范围搜索栏,但我想创建单个图像显示范围搜索栏,它应该是可拉伸的。

提前致谢。

【问题讨论】:

你能说得更具体点吗?您希望范围具有固定长度吗? 如果你创建了这个,请给我代码或提示 【参考方案1】:

该特定库为 Holo 主题 Seekbar 提供了非常具体的绘图代码。您必须实现自己的绘图代码才能达到您想要的效果。

库中的代码可以帮助您入门;

/**
     * Draws the widget on the given canvas.
     */
    @Override
    protected synchronized void onDraw(Canvas canvas) 
            super.onDraw(canvas);

            // draw seek bar background line
            final RectF rect = new RectF(padding, 0.5f * (getHeight() - lineHeight), getWidth() - padding, 0.5f * (getHeight() + lineHeight));
            paint.setStyle(Style.FILL);
            paint.setColor(Color.GRAY);
            paint.setAntiAlias(true);
            canvas.drawRect(rect, paint);

            // draw seek bar active range line
            rect.left = normalizedToScreen(normalizedMinValue);
            rect.right = normalizedToScreen(normalizedMaxValue);

            // orange color
            paint.setColor(DEFAULT_COLOR);
            canvas.drawRect(rect, paint);

            // draw minimum thumb
            drawThumb(normalizedToScreen(normalizedMinValue), Thumb.MIN.equals(pressedThumb), canvas);

            // draw maximum thumb
            drawThumb(normalizedToScreen(normalizedMaxValue), Thumb.MAX.equals(pressedThumb), canvas);
    

您在这里看到的是 RangeSeekBar 类中的 onDraw 回调。在这里画出蓝色和灰色线,然后在它们上面画出大拇指。您将不得不做一些类似的事情,但要使用您的特定逻辑、图形等。

因此,要么继承 RangeSeekBar 并扩展该库的功能,要么创建自己的自定义 View 或 ViewGroup,遵循官方 android 课程的提示; http://developer.android.com/training/custom-views/index.html

【讨论】:

以上是关于一个拇指自定义rangeseekbar android的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin - 范围搜索栏库

Android中搜索栏的自定义拇指

自定义 UI 滑块,拇指图像大小问题

自定义 UISlider 拇指图标:如何阻止拇指图标在拖动时恢复为默认圆形图标?

如何在为拇指使用自定义绘图时保持切换拇指阴影/高度?

如何在 UWP ScrollViewer 中自定义水平滚动拇指