diff --git a/ikvStockChart/build.gradle b/ikvStockChart/build.gradle index 722f8536bb7169d65c6d24d7ab2c522ff9deb9e1..aff946d3377c8e021337d210a726f8324a01b51b 100644 --- a/ikvStockChart/build.gradle +++ b/ikvStockChart/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.huawei.ohos.library' ohos { - compileSdkVersion 5 + compileSdkVersion 6 defaultConfig { compatibleSdkVersion 5 } diff --git a/ikvStockChart/src/main/config.json b/ikvStockChart/src/main/config.json index 9ea2606f77db0aa93c3aec5bcd2d2c0097593956..551885d75f56d071f9a49e054cc1cf0e45cdfed4 100644 --- a/ikvStockChart/src/main/config.json +++ b/ikvStockChart/src/main/config.json @@ -5,11 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Beta1" } }, "deviceConfig": {}, diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java index d81d9ddec8a98edefa43b1d5dd7396db2688feff..14b2791b115882f67dcfe7a46e027cd57b8cbd6d 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java @@ -24,7 +24,6 @@ import com.wordplat.ikvstockchart.entry.Entry; import com.wordplat.ikvstockchart.entry.EntrySet; import com.wordplat.ikvstockchart.entry.SizeColor; import com.wordplat.ikvstockchart.render.AbstractRender; -import com.wordplat.ikvstockchart.utils.NumCalcUtil; import com.wordplat.ikvstockchart.utils.StringUtils; import ohos.agp.render.Canvas; import ohos.agp.render.Paint; @@ -150,13 +149,13 @@ public class CandleDrawing implements IDrawing { canvas.drawText(extremumPaint, decimalFormatter.format(entry.getLow()) + " →", candleLineBuffer[6], - NumCalcUtil.add(candleLineBuffer[7], 20)); + candleLineBuffer[7] + 20); } else { extremumPaint.setTextAlign(TextAlignment.LEFT); canvas.drawText(extremumPaint, "← " + decimalFormatter.format(entry.getLow()), candleLineBuffer[6], - NumCalcUtil.add(candleLineBuffer[7], 20)); + candleLineBuffer[7] + 20); } } if (iindex == entrySet.getMaxYIndex()) { @@ -165,21 +164,21 @@ public class CandleDrawing implements IDrawing { canvas.drawText(extremumPaint, decimalFormatter.format(entry.getHigh()) + " →", candleLineBuffer[0], - NumCalcUtil.subtract(candleLineBuffer[1], 5)); + candleLineBuffer[1] - 5); } else { extremumPaint.setTextAlign(TextAlignment.LEFT); canvas.drawText(extremumPaint, "← " + decimalFormatter.format(entry.getHigh()), candleLineBuffer[0], - NumCalcUtil.subtract(candleLineBuffer[1], 5)); + candleLineBuffer[1] - 5); } } /** * 绘制 蜡烛图的矩形 */ - candleRectBuffer[0] = NumCalcUtil.add(iindex, candleSpace); - candleRectBuffer[2] = NumCalcUtil.add(iindex + 1, candleSpace); + candleRectBuffer[0] = iindex + candleSpace; + candleRectBuffer[2] = iindex + 1 + candleSpace; if (entry.getOpen() > entry.getClose()) { candleRectBuffer[1] = entry.getOpen(); @@ -199,8 +198,8 @@ public class CandleDrawing implements IDrawing { * 涨停、跌停、或不涨不跌的一字板 */ - if (Math.abs(NumCalcUtil.subtract(candleRectBuffer[1], candleRectBuffer[3])) < 1.f) { - canvas.drawRect(candleRectBuffer[0], candleRectBuffer[1], candleRectBuffer[2], NumCalcUtil.add(candleRectBuffer[3], 2), candlePaint); + if (Math.abs(candleRectBuffer[1] - candleRectBuffer[3]) < 1.f) { + canvas.drawRect(candleRectBuffer[0], candleRectBuffer[1], candleRectBuffer[2], candleRectBuffer[3] + 2, candlePaint); } else { canvas.drawRect(candleRectBuffer[0], candleRectBuffer[1], candleRectBuffer[2], candleRectBuffer[3], candlePaint); } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java index bf2fda129b6e469e646e0b372e5feb68599d3099..f109c56b1c9a3c630d73290e34d41447b5f4fbf3 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/EmptyDataDrawing.java @@ -21,7 +21,6 @@ package com.wordplat.ikvstockchart.drawing; import com.wordplat.ikvstockchart.entry.SizeColor; import com.wordplat.ikvstockchart.render.AbstractRender; -import com.wordplat.ikvstockchart.utils.NumCalcUtil; import com.wordplat.ikvstockchart.utils.StringUtils; import ohos.agp.render.Canvas; import ohos.agp.render.Paint; @@ -90,7 +89,7 @@ public class EmptyDataDrawing implements IDrawing { canvas.drawText(textPaint, drawText, contentRect.getWidth() / 2, - NumCalcUtil.divide((float) ((double)contentRect.top + (double)contentRect.bottom - (double)fontMetrics.top - (double)fontMetrics.bottom), 2)); + (contentRect.top + contentRect.bottom - fontMetrics.top - fontMetrics.bottom) / 2); } } } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java index 2b44f008bbc6e2fbdbd0fd6c566cb93f08df2b3d..803c23d7b6a880415113c03de92b9921063bc0ca 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java @@ -18,8 +18,6 @@ package com.wordplat.ikvstockchart.entry; -import com.wordplat.ikvstockchart.utils.NumCalcUtil; - import java.util.ArrayList; import java.util.List; @@ -142,7 +140,7 @@ public class EntrySet { * @return float */ public float getDeltaY() { - return NumCalcUtil.subtract(maxY , minY); + return maxY - minY; } /** @@ -337,28 +335,28 @@ public class EntrySet { volumeMa5 -= (double)entries.get(i - 5).getVolume(); entry.setVolumeMa5(volumeMa5 / 5f); } else { - entry.setMa5(NumCalcUtil.divide(ma5 , (i + 1f))); + entry.setMa5(ma5 / (i + 1f)); - entry.setVolumeMa5(NumCalcUtil.divide(volumeMa5 , (float) (i + (double)1f))); + entry.setVolumeMa5(volumeMa5 / (i + 1f)); } if (i >= 10) { ma10 -= (double)entries.get(i - 10).getClose(); - entry.setMa10(NumCalcUtil.divide(ma10 , 10f)); + entry.setMa10(ma10 / 10f); volumeMa10 -= (double)entries.get(i - 10).getVolume(); - entry.setVolumeMa10(NumCalcUtil.divide(volumeMa10 , 5f)); + entry.setVolumeMa10(volumeMa10 / 5f); } else { - entry.setMa10(NumCalcUtil.divide(ma10 , (float) (i + (double)1f))); + entry.setMa10(ma10 / (i + 1f)); - entry.setVolumeMa10(NumCalcUtil.divide(volumeMa10 , (float) (i + (double)1f))); + entry.setVolumeMa10(volumeMa10 / (i + 1f)); } if (i >= 20) { ma20 -= (double)entries.get(i - 20).getClose(); - entry.setMa20(NumCalcUtil.divide(ma20 , 20f)); + entry.setMa20(ma20 / 20f); } else { - entry.setMa20(NumCalcUtil.divide(ma20 , (float) (i + (double)1f))); + entry.setMa20(ma20 / (i + 1f)); } } } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java index 303f2be3bfc06bbae65f2476cc3944b6e7e3136f..f0a8d7ab11b91e69f7479a2a969c2828cc02554d 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/utils/NumCalcUtil.java @@ -16,6 +16,7 @@ package com.wordplat.ikvstockchart.utils; import java.math.BigDecimal; +import java.math.MathContext; /** * 浮点数计算工具类 @@ -67,6 +68,6 @@ public class NumCalcUtil { * @return 结果 */ public static float divide(float num1, float num2) { - return new BigDecimal(num1).divide(new BigDecimal(num2)).floatValue(); + return new BigDecimal(num1, MathContext.UNLIMITED).divide(new BigDecimal(num2, MathContext.DECIMAL32)).floatValue(); } }