From 213cd55013d3e7ef938e98bca1b0d3a1b5143aaa Mon Sep 17 00:00:00 2001 From: Userpack4 <70silvio@gmail.com> Date: Wed, 26 Apr 2017 18:46:27 +0200 Subject: [PATCH] Update LegendRenderer.java The Legend is not drawn correctly if a Series has title null because the text is not displayed but the square is still displayed and the height of the legend is not correct. With this modification if we have 2 Series one with title and one with title null only one Series is displayed --- .../com/jjoe64/graphview/LegendRenderer.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/jjoe64/graphview/LegendRenderer.java b/src/main/java/com/jjoe64/graphview/LegendRenderer.java index 9286cb776..cee4ec92f 100644 --- a/src/main/java/com/jjoe64/graphview/LegendRenderer.java +++ b/src/main/java/com/jjoe64/graphview/LegendRenderer.java @@ -166,6 +166,13 @@ public void draw(Canvas canvas) { if (mGraphView.mSecondScale != null) { allSeries.addAll(mGraphView.getSecondScale().getSeries()); } + + int numSeries = allSeries.size(); + for (Series s : allSeries){ + if (s.getTitle() == null){ + numSeries--; + } + } // width int legendWidth = mStyles.width; @@ -190,7 +197,7 @@ public void draw(Canvas canvas) { } // rect - float legendHeight = (mStyles.textSize+mStyles.spacing)*allSeries.size() -mStyles.spacing; + float legendHeight = (mStyles.textSize+mStyles.spacing)*numSeries -mStyles.spacing; float lLeft; float lTop; if (mStyles.fixedPosition != null) { @@ -217,13 +224,14 @@ public void draw(Canvas canvas) { int i=0; for (Series series : allSeries) { + if (series.getTitle() != null) { mPaint.setColor(series.getColor()); canvas.drawRect(new RectF(lLeft+mStyles.padding, lTop+mStyles.padding+(i*(mStyles.textSize+mStyles.spacing)), lLeft+mStyles.padding+shapeSize, lTop+mStyles.padding+(i*(mStyles.textSize+mStyles.spacing))+shapeSize), mPaint); - if (series.getTitle() != null) { - mPaint.setColor(mStyles.textColor); - canvas.drawText(series.getTitle(), lLeft+mStyles.padding+shapeSize+mStyles.spacing, lTop+mStyles.padding+mStyles.textSize+(i*(mStyles.textSize+mStyles.spacing)), mPaint); - } + mPaint.setColor(mStyles.textColor); + canvas.drawText(series.getTitle(), lLeft+mStyles.padding+shapeSize+mStyles.spacing, lTop+mStyles.padding+mStyles.textSize+(i*(mStyles.textSize+mStyles.spacing)), mPaint); i++; + } + } }