aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Cohen Gindi <danielgindi@gmail.com>2020-01-22 14:13:31 +0200
committerDaniel Cohen Gindi <danielgindi@gmail.com>2020-01-22 14:13:31 +0200
commite02e9be2fa52d9faf8518f4f9ed81248c8a87346 (patch)
treee9d923b298de3462e772a207fdedbfca4a7bfa03
parentfcc5af71ce2991e62aeebe48705e1f4076649a27 (diff)
downloadMPAndroidChart-e02e9be2fa52d9faf8518f4f9ed81248c8a87346.tar.gz
Multiple colors for valueline
https://github.com/danielgindi/Charts/pull/3709
-rw-r--r--MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/PiePolylineChartActivity.java1
-rw-r--r--MPChartLib/src/main/java/com/github/mikephil/charting/data/PieDataSet.java31
-rw-r--r--MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/IPieDataSet.java8
-rw-r--r--MPChartLib/src/main/java/com/github/mikephil/charting/renderer/PieChartRenderer.java15
4 files changed, 39 insertions, 16 deletions
diff --git a/MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/PiePolylineChartActivity.java b/MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/PiePolylineChartActivity.java
index b276806c..dd3bd575 100644
--- a/MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/PiePolylineChartActivity.java
+++ b/MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/PiePolylineChartActivity.java
@@ -156,7 +156,6 @@ public class PiePolylineChartActivity extends DemoBase implements OnSeekBarChang
dataSet.setValueLinePart1OffsetPercentage(80.f);
dataSet.setValueLinePart1Length(0.2f);
dataSet.setValueLinePart2Length(0.4f);
- //dataSet.setUsingSliceColorAsValueLineColor(true);
//dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/PieDataSet.java b/MPChartLib/src/main/java/com/github/mikephil/charting/data/PieDataSet.java
index c473e0a7..8aea673d 100644
--- a/MPChartLib/src/main/java/com/github/mikephil/charting/data/PieDataSet.java
+++ b/MPChartLib/src/main/java/com/github/mikephil/charting/data/PieDataSet.java
@@ -23,8 +23,8 @@ public class PieDataSet extends DataSet<PieEntry> implements IPieDataSet {
private ValuePosition mXValuePosition = ValuePosition.INSIDE_SLICE;
private ValuePosition mYValuePosition = ValuePosition.INSIDE_SLICE;
- private boolean mUsingSliceColorAsValueLineColor = false;
private int mValueLineColor = 0xff000000;
+ private boolean mUseValueColorForLine = false;
private float mValueLineWidth = 1.0f;
private float mValueLinePart1OffsetPercentage = 75.f;
private float mValueLinePart1Length = 0.3f;
@@ -137,15 +137,23 @@ public class PieDataSet extends DataSet<PieEntry> implements IPieDataSet {
}
/**
- * When valuePosition is OutsideSlice, use slice colors as line color if true
+ * This method is deprecated.
+ * Use isUseValueColorForLineEnabled() instead.
*/
- @Override
+ @Deprecated
public boolean isUsingSliceColorAsValueLineColor() {
- return mUsingSliceColorAsValueLineColor;
+ return isUseValueColorForLineEnabled();
}
- public void setUsingSliceColorAsValueLineColor(boolean usingSliceColorAsValueLineColor) {
- this.mUsingSliceColorAsValueLineColor = usingSliceColorAsValueLineColor;
+ /**
+ * This method is deprecated.
+ * Use setUseValueColorForLine(...) instead.
+ *
+ * @param enabled
+ */
+ @Deprecated
+ public void setUsingSliceColorAsValueLineColor(boolean enabled) {
+ setUseValueColorForLine(enabled);
}
/**
@@ -160,6 +168,17 @@ public class PieDataSet extends DataSet<PieEntry> implements IPieDataSet {
this.mValueLineColor = valueLineColor;
}
+ @Override
+ public boolean isUseValueColorForLineEnabled()
+ {
+ return mUseValueColorForLine;
+ }
+
+ public void setUseValueColorForLine(boolean enabled)
+ {
+ mUseValueColorForLine = enabled;
+ }
+
/**
* When valuePosition is OutsideSlice, indicates line width
*/
diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/IPieDataSet.java b/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/IPieDataSet.java
index 1e1ca235..3720394f 100644
--- a/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/IPieDataSet.java
+++ b/MPChartLib/src/main/java/com/github/mikephil/charting/interfaces/datasets/IPieDataSet.java
@@ -38,14 +38,14 @@ public interface IPieDataSet extends IDataSet<PieEntry> {
PieDataSet.ValuePosition getYValuePosition();
/**
- * When valuePosition is OutsideSlice, use slice colors as line color if true
+ * When valuePosition is OutsideSlice, indicates line color
* */
- boolean isUsingSliceColorAsValueLineColor();
+ int getValueLineColor();
/**
- * When valuePosition is OutsideSlice, indicates line color
+ * When valuePosition is OutsideSlice and enabled, line will have the same color as the slice
* */
- int getValueLineColor();
+ boolean isUseValueColorForLineEnabled();
/**
* When valuePosition is OutsideSlice, indicates line width
diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/PieChartRenderer.java b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/PieChartRenderer.java
index be3593ad..82654d48 100644
--- a/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/PieChartRenderer.java
+++ b/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/PieChartRenderer.java
@@ -468,7 +468,9 @@ public class PieChartRenderer extends DataRenderer {
int entryCount = dataSet.getEntryCount();
- mValueLinePaint.setColor(dataSet.getValueLineColor());
+ boolean isUseValueColorForLineEnabled = dataSet.isUseValueColorForLineEnabled();
+ int valueLineColor = dataSet.getValueLineColor();
+
mValueLinePaint.setStrokeWidth(Utils.convertDpToPixel(dataSet.getValueLineWidth()));
final float sliceSpace = getSliceSpace(dataSet);
@@ -565,12 +567,15 @@ public class PieChartRenderer extends DataRenderer {
labelPty = pt2y;
}
- if (dataSet.getValueLineColor() != ColorTemplate.COLOR_NONE) {
+ int lineColor = ColorTemplate.COLOR_NONE;
- if (dataSet.isUsingSliceColorAsValueLineColor()) {
- mValueLinePaint.setColor(dataSet.getColor(j));
- }
+ if (isUseValueColorForLineEnabled)
+ lineColor = dataSet.getColor(j);
+ else if (valueLineColor != ColorTemplate.COLOR_NONE)
+ lineColor = valueLineColor;
+ if (lineColor != ColorTemplate.COLOR_NONE) {
+ mValueLinePaint.setColor(lineColor);
c.drawLine(pt0x, pt0y, pt1x, pt1y, mValueLinePaint);
c.drawLine(pt1x, pt1y, pt2x, pt2y, mValueLinePaint);
}