在Android上绘制自定义Seekbar

在Android上绘制自定义Seekbar,android,android-mediaplayer,seekbar,android-seekbar,Android,Android Mediaplayer,Seekbar,Android Seekbar,我知道GitHub上有很多关于这个的库,关于这个参数的堆栈溢出有几个问题。但这些都不符合我的需要 我只需要画一些像这样的东西: 进度线必须是没有拇指的黄色 提前感谢您。您应该为此创建一个视图。 看看 另外,我能想到的一个更简单的解决方案是创建一个矩形进度条,占据整个宽度,并在中间的顶部绘制,播放按钮可以使用类似于我所解释的内容 只要用一个矩形而不是圆形。使用on size changed计算矩形的实际大小,并使用一种方法更改百分比并重新计算矩形大小/重新创建路径 更改路径时,只需调用inval

我知道GitHub上有很多关于这个的库,关于这个参数的堆栈溢出有几个问题。但这些都不符合我的需要

我只需要画一些像这样的东西:

进度线必须是没有拇指的黄色


提前感谢您。

您应该为此创建一个视图。 看看


另外,我能想到的一个更简单的解决方案是创建一个矩形进度条,占据整个宽度,并在中间的顶部绘制,播放按钮可以使用类似于我所解释的内容

只要用一个矩形而不是圆形。使用on size changed计算矩形的实际大小,并使用一种方法更改百分比并重新计算矩形大小/重新创建路径

更改路径时,只需调用
invalidate()
即可重新绘制

伪代码:

public void setProgress(float progress) {
    this.progress = progress;
    refreshProgressBar();
}

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    this.currentW = w;
    this.currentH = h;
    refreshProgressBar();
}

private void refreshProgressBar() {
    path.reset();
    // build your clipping path using progress / currentW / currentH
    path.close();
    invalidate();
}
您可以使用一个自定义视图来完成所有操作,也可以将两个视图放在彼此的顶部,其中包含条的“填充”的视图使用我上面介绍的方法进行剪裁

请记住,剪辑发生在画布上。因此,如果您使用自定义视图,只需在绘制进度视图之前设置剪裁,并在完成后将其删除(在这种情况下,您也可以直接绘制颜色-但如果您有复杂的颜色图案,则可能更容易进行剪裁)。如果您使用像我给您的链接中那样的剪裁视图组,则必须相应地构建布局,以便剪裁视图只是进度视图

如果你玩一点数学游戏,你也可以画一条与你的艺术作品相匹配的路径,并在布局顶部的全彩矩形上使用它

如果将一个矩形和一个圆相加,然后删除一个圆(使用
OP
对路径进行加/减/乘),则应获得一个类似于手绘的路径(形状)


祝你好运。

我对安卓系统比较陌生。我的问题怎么了?为什么被否决?你试过什么?我们不是像我说的那样编写代码的服务,我对安卓系统比较陌生。在尝试转换我在Stack overflow上发现的东西之后,我才意识到,如果没有特定案例的帮助,我无法完成这项工作。非常抱歉,我知道这是一个浪费时间的问题。但是我必须问一下。试着用谷歌搜索,比如android绘制自定义视图,你不需要写任何代码,只要给他指出正确的方向,向他解释他有什么工具可以实现类似的功能。不知道为什么要投否决票;)我试试看。谢谢