在Android中横向绘制圆形

要在Android中绘制圆形和饼图,我们可以使用AChartEngine Android框架,如下所示。

但是,我们如何在Android中绘制水平(或垂直)部分填充的圆? 我指的是根据Java代码中指定的百分比从底部到顶部填充的圆圈。

以下是我们需要的预览:

预习

  • 使用customview获取输入文本而不使用edittext android
  • 尝试保存图像时,MediaStore.Images.Media.insertImage返回null
  • Android canvas drawText文本的y位置
  • 从WebView保存图像
  • 如何在android中blit()?
  • Android自定义视图在调用invalidate后显示为纯黑色
  • 如何在android中绘制分区圈?
  • Android的 - 如何循环缩放/放大图像的一部分?
  • 试试这个循环的进展 。
    这是来自lib的作者的一个示例:

    <com.github.lzyzsd.circleprogress.CircleProgress android:id="@+id/circle_progress" android:layout_marginLeft="50dp" android:layout_width="100dp" android:layout_height="100dp" custom:circle_progress="20"/> 

    圈

    延伸Drawable ,让你的draw方法看起来像这样:

     public void draw(Canvas c) { float size = ...; // The size of your circle Paint color = new Paint(); color.setColor(...); // Color of your circle c.drawCircle(size / 2, size / 2, size / 2, color); Path p = new Path(); float ratio = ...; // How many of the circle you want to have filled float offset = size * (float) Math.sqrt(1-((double) (0.5-ratio) * 2)*((double) (0.5-ratio) * 2)) / 2; float angle = (float) Math.asin((double) (0.5-ratio) * 2); p.addArc(offset, size * (1-percent), size - offset, size, angle, Math.PI - angle); p.close(); c.drawPath(p, color); }