From e2b5914cb73755064039bcb7ac39736069c732c8 Mon Sep 17 00:00:00 2001 From: Carlos Rivero Aro Date: Wed, 26 Apr 2023 07:00:59 +0200 Subject: [PATCH 1/6] adding textures to each segment --- lib/src/chart_painter.dart | 23 ++++++++++++++++++++++- lib/src/pie_chart.dart | 3 +++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/src/chart_painter.dart b/lib/src/chart_painter.dart index c02a365..ac07988 100644 --- a/lib/src/chart_painter.dart +++ b/lib/src/chart_painter.dart @@ -26,6 +26,7 @@ class PieChartPainter extends CustomPainter { final Color? emptyColor; final List>? gradientList; final List? emptyColorGradient; + final List? textureList; final DegreeOptions degreeOptions; final Color baseChartColor; final double? totalValue; @@ -54,6 +55,7 @@ class PieChartPainter extends CustomPainter { this.emptyColor, this.gradientList, this.emptyColorGradient, + this.textureList, this.degreeOptions = const DegreeOptions(), required this.baseChartColor, this.totalValue, @@ -65,7 +67,7 @@ class PieChartPainter extends CustomPainter { _total = totalValue!; } - if (gradientList?.isEmpty ?? true) { + if ((gradientList?.isEmpty ?? true) && (textureList?.isEmpty ?? true)) { for (int i = 0; i < values.length; i++) { final paint = Paint()..color = getColor(colorList, i); setPaintProps(paint); @@ -73,6 +75,8 @@ class PieChartPainter extends CustomPainter { } } + + _totalAngle = angleFactor * doublePi * drawPercentage; _subParts = values; _prevAngle = degreeToRadian(degreeOptions.initialAngle); @@ -136,6 +140,7 @@ class PieChartPainter extends CustomPainter { final isGradientPresent = gradientList?.isNotEmpty ?? false; final isNonGradientElementPresent = (_subParts.length - (gradientList?.length ?? 0)) > 0; + final isTexturePresent = textureList?.isNotEmpty ?? false; for (int i = 0; i < _subParts.length; i++) { if (isGradientPresent) { @@ -152,6 +157,22 @@ class PieChartPainter extends CustomPainter { emptyColorGradient: emptyColorGradient!), ); paint.shader = gradient.createShader(boundingSquare); + if (chartType == ChartType.ring) { + paint.style = PaintingStyle.stroke; + paint.strokeWidth = strokeWidth!; + paint.strokeCap = StrokeCap.butt; + } + canvas.drawArc( + boundingSquare, + _prevAngle, + endAngle, + useCenter, + paint, + ); + } else if (isTexturePresent) { + final endAngle = (((_totalAngle) / _total) * _subParts[i]); + final paint = Paint()..shader = textureList![i]; + if (chartType == ChartType.ring) { paint.style = PaintingStyle.stroke; paint.strokeWidth = strokeWidth!; diff --git a/lib/src/pie_chart.dart b/lib/src/pie_chart.dart index 46a89a8..ab14571 100644 --- a/lib/src/pie_chart.dart +++ b/lib/src/pie_chart.dart @@ -27,6 +27,7 @@ class PieChart extends StatefulWidget { this.emptyColor = Colors.grey, this.gradientList, this.emptyColorGradient = const [Colors.black26, Colors.black54], + this.textureList, this.legendLabels = const {}, Key? key, this.degreeOptions = const DegreeOptions(), @@ -41,6 +42,7 @@ class PieChart extends StatefulWidget { final double chartLegendSpacing; final List colorList; final List>? gradientList; + final List? textureList; @Deprecated('use degreeOptions. instead') final double? initialAngleInDegree; final Function? formatChartValues; @@ -146,6 +148,7 @@ class _PieChartState extends State emptyColor: widget.emptyColor, gradientList: widget.gradientList, emptyColorGradient: widget.emptyColorGradient, + textureList: widget.textureList, degreeOptions: widget.degreeOptions.copyWith( // because we've deprecated initialAngleInDegree, // we want the old value to be used if it's not null From 7d3867ff537402802297d64471c5909d5c9d0987 Mon Sep 17 00:00:00 2001 From: Carlos Rivero Aro Date: Mon, 8 May 2023 14:01:05 +0000 Subject: [PATCH 2/6] adding documentation and an example of textures --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/README.md b/README.md index 75d185e..480ea0d 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ PieChart( ), // gradientList: ---To add gradient colors--- // emptyColorGradient: ---Empty Color gradient--- + // textureList: ---To add image textures---- ) ``` @@ -135,6 +136,54 @@ emptyColorGradient: [ PieChart +### Image Texures + +Pie Chart supports image textures as colors. Just pass `textureList` instead of `colorList` or `gradientList` to add textures to each section. + +```dart +Future _loadImage(String path) async { + final image = await rootBundle.load(path); + return await decodeImageFromList(image.buffer.asUint8List()); +} + +Future> _loadImageShaders(List paths) async { + List images = []; + for (String path in paths) { + ui.Image img = await _loadImage(path); + images.add(ImageShader(img, TileMode.mirror, TileMode.mirror, Matrix4.identity().storage)); + } + return images; +} + +FutureBuilder>( + future: _loadImageShaders([ + 'textures/tile.jpg', + 'textures/tile4.jpg', + 'textures/tile2.jpg', + 'textures/tile3.jpg', + ]), + builder: (context, textures) => textures.hasData ? SizedBox( + height: 300, + width: 300, + child: PieChart( + dataMap: { + "Flutter": 5, + "React": 2, + "Xamarin": 2, + "Ionic": 3, + }, + textureList: textures.data, + legendOptions: LegendOptions( + showLegends: false + ), + chartValuesOptions: ChartValuesOptions( + showChartValuesInPercentage: true, + ), + ), + ) : Text('loading'), +), +``` + ### Base Chart Color Add a base pie-chart color via: From 49c228452db61847b0e4850a88b9e5cec0d8b3db Mon Sep 17 00:00:00 2001 From: Carlos Rivero Aro Date: Mon, 8 May 2023 14:05:31 +0000 Subject: [PATCH 3/6] adding image example --- README.md | 3 +++ res/s13.jpg | Bin 0 -> 46576 bytes 2 files changed, 3 insertions(+) create mode 100644 res/s13.jpg diff --git a/README.md b/README.md index 480ea0d..ab1420b 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,9 @@ FutureBuilder>( ), ``` +PieChart + + ### Base Chart Color Add a base pie-chart color via: diff --git a/res/s13.jpg b/res/s13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5518892e1b5d19ddcfd621ce40854ae3ad034109 GIT binary patch literal 46576 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 Date: Mon, 8 May 2023 14:06:21 +0000 Subject: [PATCH 4/6] fix on extension of image sample --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab1420b..f46cb46 100644 --- a/README.md +++ b/README.md @@ -184,7 +184,7 @@ FutureBuilder>( ), ``` -PieChart +PieChart ### Base Chart Color From cb5e41cab55b0968ae79d99e39f5defa56eecda6 Mon Sep 17 00:00:00 2001 From: Carlos Rivero Aro Date: Thu, 6 Jul 2023 00:52:33 +0200 Subject: [PATCH 5/6] Update pie_chart.dart --- lib/src/pie_chart.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/pie_chart.dart b/lib/src/pie_chart.dart index ab14571..aa81587 100644 --- a/lib/src/pie_chart.dart +++ b/lib/src/pie_chart.dart @@ -42,7 +42,7 @@ class PieChart extends StatefulWidget { final double chartLegendSpacing; final List colorList; final List>? gradientList; - final List? textureList; + final List? textureList; @Deprecated('use degreeOptions. instead') final double? initialAngleInDegree; final Function? formatChartValues; From 7043be51ef94331bbb24401878184616cf877e6d Mon Sep 17 00:00:00 2001 From: Carlos Rivero Aro Date: Thu, 6 Jul 2023 00:54:08 +0200 Subject: [PATCH 6/6] Update chart_painter.dart --- lib/src/chart_painter.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/chart_painter.dart b/lib/src/chart_painter.dart index ac07988..0e14e3f 100644 --- a/lib/src/chart_painter.dart +++ b/lib/src/chart_painter.dart @@ -26,7 +26,7 @@ class PieChartPainter extends CustomPainter { final Color? emptyColor; final List>? gradientList; final List? emptyColorGradient; - final List? textureList; + final List? textureList; final DegreeOptions degreeOptions; final Color baseChartColor; final double? totalValue;