From e8a8e91a9682280943e99eb1f9a715f03ecb0ab4 Mon Sep 17 00:00:00 2001 From: wangyiqian Date: Sat, 20 Nov 2021 14:30:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=B1=E5=B3=B0=E5=9B=BE=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=9D=87=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stockchart/childchart/kchart/KChart.kt | 67 +++++++++++-------- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt index 4170a62..521ea49 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt @@ -649,6 +649,43 @@ open class KChart( ) preIdx = idx } + + drawAvgPriceLine(canvas) + } + + private fun drawAvgPriceLine(canvas: Canvas){ + if (chartConfig.showAvgLine) { + + avgPriceLinePaint.strokeWidth = chartConfig.avgLineStrokeWidth + avgPriceLinePaint.color = chartConfig.avgLineColor + var preAvgIdx = -1 + for (idx in getKEntities().indices) { + + if (getKEntities()[idx] is EmptyKEntity || getKEntities()[idx].getAvgPrice() == null) { + preAvgIdx = -1 + continue + } + + if (preAvgIdx == -1 || getKEntities()[idx] is KEntityOfLineStarter) { + preAvgIdx = idx + continue + } + + tmp4FloatArray[0] = preAvgIdx + 0.5f + tmp4FloatArray[1] = getKEntities()[preAvgIdx].getAvgPrice()!! + tmp4FloatArray[2] = idx + 0.5f + tmp4FloatArray[3] = getKEntities()[idx].getAvgPrice()!! + mapPointsValue2Real(tmp4FloatArray) + canvas.drawLine( + tmp4FloatArray[0], + tmp4FloatArray[1], + tmp4FloatArray[2], + tmp4FloatArray[3], + avgPriceLinePaint + ) + preAvgIdx = idx + } + } } private fun drawBarKChart(canvas: Canvas) { @@ -803,36 +840,8 @@ open class KChart( ) preIdx = idx } - if (chartConfig.showAvgLine) { - avgPriceLinePaint.strokeWidth = chartConfig.avgLineStrokeWidth - avgPriceLinePaint.color = chartConfig.avgLineColor - var preAvgIdx = -1 - for (idx in getKEntities().indices) { - if (getKEntities()[idx] is EmptyKEntity || getKEntities()[idx].getAvgPrice() == null) { - preAvgIdx = -1 - continue - } - - if (preAvgIdx == -1 || getKEntities()[idx] is KEntityOfLineStarter) { - preAvgIdx = idx - continue - } - tmp4FloatArray[0] = preAvgIdx + 0.5f - tmp4FloatArray[1] = getKEntities()[preAvgIdx].getAvgPrice()!! - tmp4FloatArray[2] = idx + 0.5f - tmp4FloatArray[3] = getKEntities()[idx].getAvgPrice()!! - mapPointsValue2Real(tmp4FloatArray) - canvas.drawLine( - tmp4FloatArray[0], - tmp4FloatArray[1], - tmp4FloatArray[2], - tmp4FloatArray[3], - avgPriceLinePaint - ) - preAvgIdx = idx - } - } + drawAvgPriceLine(canvas) } private fun drawLabels(canvas: Canvas) {