我正试图在android上制作循环进度条,这看起来非常简单,但我正在努力完成进度和次要进度的边缘.
有没有办法在不制作自定义视图的情况下做到这一点?使用角半径?还是九个补丁?
对于这个视图(参见附件)我使用的是一个简单的xml文件
<item android:id="@android:id/progress">
<shape
android:useLevel="true"
android:innerRadius="@dimen/sixty_dp"
android:shape="ring"
android:thickness="@dimen/seven_dp">
<solid android:color="#477C5B"/>
<stroke android:width="1dip"
android:color="#FFFF"/>
</shape>
</item>
Run Code Online (Sandbox Code Playgroud)


这个答案最快的描述是我试图找到白点的坐标.深红色是绘制圆圈上的绘制圆弧(深蓝色).
更长的解释:我有一个正在扩展的类,它View在画布上绘制一个圆(画布具有相等的宽度和高度):
canvas.drawArc(rectF, 0, 360, true, paint); // mOvals is a RectF object with 4 coordinates
Run Code Online (Sandbox Code Playgroud)
然后我绘制一个N%宽的弧(在这种情况下假设为225).弧从-90度开始(因为画布中的0度意味着3'o时钟)并且"偏离"N度(在该示例中为225度).
我试图计算X/Y坐标或剩余弧的中心(红色弧未覆盖的区域;在N和360之间).
我有圆的半径,canvasWidth/2,如果有一些帮助.
这是我画红弧的方式:
long arcEnd = (360 * fractionNumber) / totalNumber;
canvas.drawArc(rectF, -90, arcEnd, true, paint);
Run Code Online (Sandbox Code Playgroud)