Java 重叠多个Android循环进度条,总计为100

Java 重叠多个Android循环进度条,总计为100,java,android,xml,progress-bar,android-progressbar,Java,Android,Xml,Progress Bar,Android Progressbar,我目前正在编写一个Android应用程序,遇到了一个研发一周左右都无法解决的问题。目前的设置是4个重叠的圆形进度条,带有单独的颜色和样式,目标是通过编程方式对其进行操作,使其总计达到100个,并完全填充整个圆圈,因为四个进度条表示一个单位的百分比(卡路里摄入和随后的大量营养素分解) 失败0 假设它不起作用,我试图简单地将“from degrees”和“to degrees”更改为{[0,90],[90180],[180270],[270360]},并通过ProgressBar.setProgre

我目前正在编写一个Android应用程序,遇到了一个研发一周左右都无法解决的问题。目前的设置是4个重叠的圆形进度条,带有单独的颜色和样式,目标是通过编程方式对其进行操作,使其总计达到100个,并完全填充整个圆圈,因为四个进度条表示一个单位的百分比(卡路里摄入和随后的大量营养素分解)

失败0

假设它不起作用,我试图简单地将“from degrees”和“to degrees”更改为{[0,90],[90180],[180270],[270360]},并通过ProgressBar.setProgress()测试每个设置,但指示器重叠,无法正确显示细分。然后我猜测,我必须找到一种方法来操纵android:对于每个ProgressBar,从度和android:toDegrees,这会导致我们-

失败1

我尝试通过Document、DocumentBuilderFactory和XPath以编程方式操作XML文件中的各个标记,从/res/(…).XML读取XML文件,并根据宏营养素每日摄入总量的百分比重写标记值。我遇到了一个问题,即我实际上无法访问/res/(未找到文件)中的XML文件,并且试图通过getResources()获取InputStream将我限制在/res/raw中的资源/

失败2

我试图将进度条的XML文件移动到/res/raw中,希望能够在Fail 1中通过组合操作它们,但是这样做会在膨胀时产生运行时错误


有没有其他方法可以让XML操作正常工作,或者有其他方法可以实现我的目标?

嗯,你现在想做什么?这不是一个网页-您不需要操纵xml。xml是静态的。获取xml中引用的视图对象,并使用普通对象调用来操作它们的数据。。。实际上不在应用程序中。它们被编译成二进制格式,以便更快地解析。因此,如果您愿意的话,没有xml文件可操作。嘿@Gabeschen感谢您的回复,我在约束布局中有四个相互重叠的圆形进度条,我希望每个进度条都占一个圆的X%。假设第一圈是30%,第二圈是20%,第三圈是20%,第四圈是30%。我希望每个ProgressBar从前一个结束的地方开始,这样它加起来就是一个完整的循环。我还没有在ProgressBarAPI中找到允许我这样做的方法,所以我认为我唯一的途径就是尝试以编程方式操作fromDegrees和toDegrees。有没有其他方法可以使用ProgressBar执行此操作?ProgressBar上没有fromDegrees和toDegrees。你是在说操纵Drawable,它使用RotateDrawable来绘制自己吗?是的,那是行不通的,如果你尝试的话,会有意想不到的效果。这里真正的答案是创建自己的视图类并编写onDraw来绘制所需内容。这应该很简单-对每种颜色调用一个canvas.drawArc()。这就是@Gabeschen,我有ProgressBar的可绘制项,这就是我要做的。我会努力创建自己的视图,谢谢回复!