From 12d6db5780d8a2121a3bef2d58bf897b24ff552a Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期三, 12 六月 2024 15:54:29 +0800
Subject: [PATCH] Merge branch 'dev'

---
 app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java |  228 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 228 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java
new file mode 100644
index 0000000..df72e80
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java
@@ -0,0 +1,228 @@
+package com.hdl.photovoltaic.ui.home.aachart;
+
+import static com.github.AAChartModel.AAChartCore.AATools.AAColor.AARgba;
+
+import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartModel;
+import com.github.AAChartModel.AAChartCore.AAChartCreator.AASeriesElement;
+import com.github.AAChartModel.AAChartCore.AAChartEnum.AAChartAnimationType;
+import com.github.AAChartModel.AAChartCore.AAChartEnum.AAChartSymbolStyleType;
+import com.github.AAChartModel.AAChartCore.AAChartEnum.AAChartSymbolType;
+import com.github.AAChartModel.AAChartCore.AAChartEnum.AAChartType;
+import com.github.AAChartModel.AAChartCore.AAChartEnum.AAChartZoomType;
+import com.github.AAChartModel.AAChartCore.AAOptionsModel.AAStyle;
+import com.github.AAChartModel.AAChartCore.AAOptionsModel.AATooltip;
+import com.github.AAChartModel.AAChartCore.AATools.AAColor;
+import com.github.AAChartModel.AAChartCore.AATools.AAGradientColor;
+import com.github.AAChartModel.AAChartCore.AATools.AALinearGradientDirection;
+
+import java.util.Map;
+
+public class BasicChartComposer {
+    public static AAChartModel configureBasicOptions() {
+        return new AAChartModel()
+                .backgroundColor("#EDEFF2")
+//                .backgroundColor("#4b2b7f")
+                .dataLabelsEnabled(false)
+                .yAxisGridLineWidth(1)
+                .touchEventEnabled(true);
+    }
+
+    public static AAChartModel configureAreaChart() {
+        Map<String, Object> linearGradientColor = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToBottom,
+                "rgba(56,196,148,0.5)",//娣辩矇鑹�, alpha 閫忔槑搴�1
+                "rgba(255,255,255,0)"//鐑儏鐨勭矇绾�, alpha 閫忔槑搴� 0.1
+        );//棰滆壊瀛楃涓茶缃敮鎸佸崄鍏繘鍒剁被鍨嬪拰 rgba 绫诲瀷
+        AASeriesElement element1 = new AASeriesElement()
+                .name("Tokyo")
+//                .colorByPoint(true)
+                .color(AARgba(56, 196, 148, 1.0f))//鐚╃孩鑹�, alpha 閫忔槑搴� 1
+                .lineWidth(1.5)
+//                .borderColor(AARgba(255,255,255,1.0f))
+                .fillColor(linearGradientColor)
+//                .fillOpacity(0.5)//鍖哄煙鑳屾櫙閫忔槑搴︼紝璁剧疆0鐨勮瘽鐪嬩笉鍒板尯鍩熻儗鏅�
+                .data(new Object[]{0, 20, 30, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6});
+//        AASeriesElement element2 = new AASeriesElement()
+//                .name("NewYork")
+//                .data(new Object[]{0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5});
+//        AASeriesElement element3 = new AASeriesElement()
+//                .name("London")
+//                .data(new Object[]{0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0});
+//        AASeriesElement element4 = new AASeriesElement()
+//                .name("Berlin")
+//                .data(new Object[]{3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8});
+
+        return configureBasicOptions()
+                .backgroundColor("#EDEFF2")
+                .legendEnabled(false)
+                .markerRadius(0)
+//                .markerSymbol(AAChartSymbolType.Circle)
+                .markerSymbolStyle(AAChartSymbolStyleType.Normal)
+                .chartType(AAChartType.Area)
+                .categories(new String[]{"涓�鏈�", "浜屾湀", "涓夋湀", "鍥涙湀", "浜旀湀", "鍏湀", "涓冩湀", "鍏湀", "涔濇湀", "鍗佹湀", "鍗佷竴鏈�", "鍗佷簩鏈�"})
+                .series(new AASeriesElement[]{element1});
+    }
+
+    public static AAChartModel configureAreaChart(String tipSuspendName, String[] categories, Object[] data) {
+        Map<String, Object> linearGradientColor = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToBottom,
+                "rgba(56,196,148,0.5)",//娣辩矇鑹�, alpha 閫忔槑搴�1
+                "rgba(255,255,255,0)"//鐑儏鐨勭矇绾�, alpha 閫忔槑搴� 0.1
+        );//棰滆壊瀛楃涓茶缃敮鎸佸崄鍏繘鍒剁被鍨嬪拰 rgba 绫诲瀷
+        AATooltip aaTooltip = new AATooltip()
+                .enabled(true)
+                .valueDecimals(2);
+        AASeriesElement element1 = new AASeriesElement()
+                .name(tipSuspendName)
+//                .colorByPoint(true)
+                .color(AARgba(56, 196, 148, 1.0f))//鐚╃孩鑹�, alpha 閫忔槑搴� 1
+                .lineWidth(1.5)
+//                .borderColor(AARgba(255,255,255,1.0f))
+                .fillColor(linearGradientColor)
+//                .fillOpacity(0.5)//鍖哄煙鑳屾櫙閫忔槑搴︼紝璁剧疆0鐨勮瘽鐪嬩笉鍒板尯鍩熻儗鏅�
+                .tooltip(aaTooltip)
+                .data(data);
+
+//        AASeriesElement element2 = new AASeriesElement()
+//                .name("NewYork")
+//                .data(new Object[]{0.45, 0.43, 0.50, 0.55, 0.58, 0.62, 0.83, 0.39, 0.56, 0.67, 0.50, 0.34, 0.50, 0.67, 0.58, 0.29, 0.46, 0.23, 0.47, 0.46, 0.38, 0.56, 0.48, 0.36});
+        return configureBasicOptions()
+                .backgroundColor("#EDEFF2")
+                .legendEnabled(false)
+                .markerRadius(0)
+//                .markerSymbol(AAChartSymbolType.Circle)
+//                .markerSymbolStyle(AAChartSymbolStyleType.Normal)
+                .chartType(AAChartType.Area)
+                .categories(categories)
+                .zoomType(AAChartZoomType.None)//鎵嬪娍缂╂斁
+//                .yAxisMax(100)
+                .yAxisMin(0)
+                .series(new AASeriesElement[]{element1});
+    }
+
+    public static AAChartModel configureStepAreaChartAndStepLineChart() {
+        AASeriesElement element1 = new AASeriesElement()
+                .name("Tokyo")
+                .step(true)
+                .data(new Object[]{149.9, 171.5, 106.4, 129.2, 144.0, 176.0, 135.6, 188.5, 276.4, 214.1, 95.6, 54.4});
+
+        AASeriesElement element2 = new AASeriesElement()
+                .name("NewYork")
+                .step(true)
+                .data(new Object[]{83.6, 78.8, 188.5, 93.4, 106.0, 84.5, 105.0, 104.3, 131.2, 153.5, 226.6, 192.3});
+
+        AASeriesElement element3 = new AASeriesElement()
+                .name("London")
+                .step(true)
+                .data(new Object[]{48.9, 38.8, 19.3, 41.4, 47.0, 28.3, 59.0, 69.6, 52.4, 65.2, 53.3, 72.2});
+
+        return configureBasicOptions()
+                .chartType(AAChartType.Area)
+                .series(new AASeriesElement[]{element1, element2, element3,});
+    }
+
+    public static AAChartModel configureColumnChartAndBarChart() {
+        return configureAreaChart()
+                .categories(new String[]{
+                        "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+                        "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+                })
+                .legendEnabled(true)
+                .colorsTheme(new String[]{"#fe117c", "#ffc069", "#06caf4", "#7dffc0"})
+                .animationType(AAChartAnimationType.EaseOutCubic)
+                .animationDuration(1200);
+    }
+
+    public static AAChartModel configureAreaChartAndAreasplineChartStyle(String chartType) {
+        String[] colorsArr = {
+                AAColor.Red,
+                AAColor.Orange,
+                AAColor.Red,
+                AAColor.Green,
+                AAColor.Red,
+                AAColor.Blue,
+                AAColor.Red,
+                AAColor.Gray,
+                AAColor.DarkGray,
+                AAColor.LightGray,
+                AAColor.Magenta,
+                AAColor.Brown,
+                AAColor.Black,
+        };
+        AAChartModel aaChartModel = configureAreaChart()
+                .animationType(AAChartAnimationType.EaseOutQuart)
+                .legendEnabled(true)
+                .markerRadius(0)
+                .markerSymbolStyle(AAChartSymbolStyleType.Normal)
+//                .markerSymbol(AAChartSymbolType.Circle)
+                .tooltipValueSuffix("Kw.h")
+//                .colorsTheme(colorsArr)
+                .legendEnabled(false);
+
+
+        if (chartType.equals(AAChartType.Areaspline)) {
+            Map<String, Object> gradientColorDic = AAGradientColor.linearGradient(
+                    AALinearGradientDirection.ToBottomRight,
+                    "rgba(138,43,226,1)",
+                    "rgba(30,144,255,1)" //棰滆壊瀛楃涓茶缃敮鎸佸崄鍏繘鍒剁被鍨嬪拰 rgba 绫诲瀷
+            );
+
+            AASeriesElement element1 = new AASeriesElement()
+                    .name("Predefined symbol")
+                    .fillColor(gradientColorDic)
+                    .data(new Object[]{0.45, 0.43, 0.50, 0.55, 0.58, 0.62, 0.83, 0.39, 0.56, 0.67, 0.50, 0.34, 0.50, 0.67, 0.58, 0.29, 0.46, 0.23, 0.47, 0.46, 0.38, 0.56, 0.48, 0.36});
+
+            AASeriesElement element2 = new AASeriesElement()
+                    .name("Image symbol")
+                    .data(new Object[]{0.38, 0.31, 0.32, 0.32, 0.64, 0.66, 0.86, 0.47, 0.52, 0.75, 0.52, 0.56, 0.54, 0.60, 0.46, 0.63, 0.54, 0.51, 0.58, 0.64, 0.60, 0.45, 0.36, 0.67});
+
+            AASeriesElement element3 = new AASeriesElement()
+                    .name("Base64 symbol (*)")
+                    .data(new Object[]{0.46, 0.32, 0.53, 0.58, 0.86, 0.68, 0.85, 0.73, 0.69, 0.71, 0.91, 0.74, 0.60, 0.50, 0.39, 0.67, 0.55, 0.49, 0.65, 0.45, 0.64, 0.47, 0.63, 0.64});
+
+            AASeriesElement element4 = new AASeriesElement()
+                    .name("Custom symbol")
+                    .data(new Object[]{0.60, 0.51, 0.52, 0.53, 0.64, 0.84, 0.65, 0.68, 0.63, 0.47, 0.72, 0.60, 0.65, 0.74, 0.66, 0.65, 0.71, 0.59, 0.65, 0.77, 0.52, 0.53, 0.58, 0.53});
+
+            aaChartModel
+                    .animationType(AAChartAnimationType.EaseFrom)//璁剧疆鍥捐〃娓叉煋鍔ㄧ敾绫诲瀷涓� EaseFrom
+                    .series(new AASeriesElement[]{element1, element2, element3, element4});
+        }
+        return aaChartModel;
+    }
+
+
+    public static AAChartModel configureLineChartAndSplineChartStyle(String chartType) {
+        AAChartModel aaChartModel = configureAreaChart()
+                .chartType(chartType)
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//璁剧疆鎶樼嚎杩炴帴鐐规牱寮忎负:杈圭紭鐧借壊
+                .markerRadius(6);
+        if (chartType.equals(AAChartType.Spline)) {
+            AASeriesElement element1 = new AASeriesElement()
+                    .name("Tokyo")
+                    .lineWidth(7)
+                    .data(new Object[]{50, 320, 230, 370, 230, 400,});
+
+            AASeriesElement element2 = new AASeriesElement()
+                    .name("Berlin")
+                    .lineWidth(7)
+                    .data(new Object[]{80, 390, 210, 340, 240, 350,});
+
+            AASeriesElement element3 = new AASeriesElement()
+                    .name("New York")
+                    .lineWidth(7)
+                    .data(new Object[]{100, 370, 180, 280, 260, 300,});
+
+            AASeriesElement element4 = new AASeriesElement()
+                    .name("London")
+                    .lineWidth(7)
+                    .data(new Object[]{130, 350, 160, 310, 250, 268,});
+
+            aaChartModel
+                    .animationType(AAChartAnimationType.SwingFromTo)
+                    .series(new AASeriesElement[]{element1, element2, element3, element4});
+
+        }
+        return aaChartModel;
+    }
+}

--
Gitblit v1.8.0