studio programacion herramientas fundamentos con avanzado aplicaciones android canvas draw achartengine pie-chart

programacion - manual de android en pdf



Dibujar el cĂ­rculo que se llena horizontalmente en Android (2)

Para dibujar círculos y gráficos circulares en Android, podemos usar el marco AChartEngine Android como se muestra aquí .

Sin embargo, ¿cómo podemos dibujar círculos que estén parcialmente llenos horizontalmente (o verticalmente) en Android? Me refiero a los círculos que se llenan, por ejemplo, de abajo hacia arriba según el porcentaje especificado en el código de Java.

Aquí hay una vista previa de lo que necesitamos:


Prueba este lib Circle Progress .
Aquí hay una muestra del autor de 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"/>


Extiende Drawable y deja que tu método de draw se vea así:

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); }