Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public void drawSeries(Canvas canvas, Paint paint, float[] points,
- SimpleSeriesRenderer seriesRenderer, float yAxisValue, int seriesIndex, int startIndex) {
- int length = points.length;
- XYSeriesRenderer renderer = (XYSeriesRenderer) seriesRenderer;
- float lineWidth = paint.getStrokeWidth();
- paint.setStrokeWidth(renderer.getLineWidth());
- if (renderer.isFillBelowLine() || renderer.isGradientEnabled()) {
- int pLength = points.length;
- float[] fillPoints = new float[pLength + 4];
- System.arraycopy(points, 0, fillPoints, 0, length);
- fillPoints[0] = points[0] + 1;
- fillPoints[length] = fillPoints[length - 2];
- fillPoints[length + 1] = yAxisValue;
- fillPoints[length + 2] = fillPoints[0];
- fillPoints[length + 3] = fillPoints[length + 1];
- float max = 0;
- for (int i = 0; i < length + 4; i += 2) {
- if (fillPoints[i + 1] < 0) {
- fillPoints[i + 1] = 0;
- }
- else if (fillPoints[i + 1] > max) {
- max = fillPoints[i + 1];
- }
- }
- paint.setStyle(Style.FILL);
- if (renderer.isGradientEnabled()) {
- Shader s = paint.getShader();
- // Create gradient from values set in renderer
- paint.setShader(new LinearGradient(0, (float)(renderer.getGradientStartValue() * max), 0, (float)(renderer.getGradientStopValue() * max),
- renderer.getGradientStartColor(), renderer.getGradientStopColor(), Shader.TileMode.MIRROR));
- drawPath(canvas, fillPoints, paint, true);
- // Restore paint's shader to previous value (null)
- paint.setShader(s);
- }
- else {
- paint.setColor(renderer.getFillBelowLineColor());
- drawPath(canvas, fillPoints, paint, true);
- }
- }
- paint.setColor(seriesRenderer.getColor());
- paint.setStyle(Style.STROKE);
- drawPath(canvas, points, paint, false);
- paint.setStrokeWidth(lineWidth);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement