From 8d16166f56682bd4c56e16c7a6e6fbd9822b845a Mon Sep 17 00:00:00 2001 From: ZYF949 <446962864@qq.com> Date: Tue, 18 May 2021 10:01:38 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E3=80=91=EF=BC=9A=E4=BF=AE=E6=94=B9md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../Enable_Left_And_Right_Refresh_Slice.java | 2 +- .../ikvstockchart/InteractiveKLineLayout.java | 4 ---- .../ikvstockchart/compat/ViewUtils.java | 15 ++++++++---- .../detector/ScaleGestureDetector.java | 4 ++++ .../ikvstockchart/entry/EntrySet.java | 6 ++++- .../ikvstockchart/entry/StockDataTest.java | 2 +- .../ikvstockchart/render/AbstractRender.java | 23 ++++++++++++++++++- .../wordplat/ikvstockchart/ExampleTest.java | 12 ---------- 9 files changed, 44 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 08faf62..97f8c02 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ - 所属系列:openharmony的第三方组件适配移植 - 功能:ikvStockChart一个简单的openharmony图表库,支持时间线,k线,macd,kdj,rsi,boll索引和交互式手势操作,包括左右滑动刷新,缩放,突出显示。 - 项目移植状态:主功能完成 -- 调用差异:无 +- 调用差异:左滑右滑日期循环跳回初始日期,加载动画事件触未发;长按多颜色信息展示为默认 - 开发版本:sdk5,DevEco Studio2.1 beta4 - 项目作者和维护人:蒋军 - 联系方式:jiangjun073@chinasoftinc.com diff --git a/entry/src/main/java/com/wordplat/quickstart/slice/Enable_Left_And_Right_Refresh_Slice.java b/entry/src/main/java/com/wordplat/quickstart/slice/Enable_Left_And_Right_Refresh_Slice.java index bdfcf5c..adc7985 100644 --- a/entry/src/main/java/com/wordplat/quickstart/slice/Enable_Left_And_Right_Refresh_Slice.java +++ b/entry/src/main/java/com/wordplat/quickstart/slice/Enable_Left_And_Right_Refresh_Slice.java @@ -226,7 +226,7 @@ public class Enable_Left_And_Right_Refresh_Slice extends BaseAbilitySlice { final KLineRender kLineRender = (KLineRender) kLineLayout.getKLineView().getRender(); if (contains(kLineRender.getKLineRect(), x, y)) { kLineRender.zoomIn(x, y); - kLineLayout.klineNotify(); + kLineLayout.getKLineView().notifyDataSetChanged(); } } }); diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/InteractiveKLineLayout.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/InteractiveKLineLayout.java index 02978e9..6aa274a 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/InteractiveKLineLayout.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/InteractiveKLineLayout.java @@ -101,10 +101,6 @@ public class InteractiveKLineLayout extends StackLayout implements Component.Cli initUI(context, attrs, defStyleAttr); } - public void klineNotify() { - kLineView.notifyDataSetChanged(); - } - private void initUI(Context context, AttrSet attrs, int defStyleAttr) { kLineView = new InteractiveKLineView(context, attrs); kLineRender = (KLineRender) kLineView.getRender(); diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/compat/ViewUtils.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/compat/ViewUtils.java index 7022bf6..01b535f 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/compat/ViewUtils.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/compat/ViewUtils.java @@ -51,8 +51,8 @@ public class ViewUtils { /** * 根据手机的分辨率从 vp 的单位 转成为 px(像素) * - * @param context - * @param vp + * @param context context + * @param vp vp * @return int */ public static int vpToPx(final Context context, final float vp) { @@ -62,9 +62,9 @@ public class ViewUtils { /** * 根据手机的分辨率从 px(像素) 的单位 转成为 vp * - * @param context - * @param px - * @return + * @param context context + * @param px px + * @return pxTovp */ public static int pxTovp(final Context context, final float px) { return Math.round(px / getDensity(context) + 0.5f); @@ -127,6 +127,11 @@ public class ViewUtils { /** * 初始化 SizeColor + * + * @param context context + * @param attrs attrs + * @param defStyleAttr defStyleAttr + * @return SizeColor */ public static SizeColor getSizeColor(Context context, AttrSet attrs, int defStyleAttr) { diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/detector/ScaleGestureDetector.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/detector/ScaleGestureDetector.java index b5f98ce..f37c0e4 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/detector/ScaleGestureDetector.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/detector/ScaleGestureDetector.java @@ -398,6 +398,8 @@ public class ScaleGestureDetector { /** * Return whether the stylus scale gesture, in which the user uses a stylus and presses the * button, should perform scaling. {@see #setStylusScaleEnabled(boolean)} + * + * @return boolean */ public boolean isStylusScaleEnabled() { return mStylusScaleEnabled; @@ -405,6 +407,8 @@ public class ScaleGestureDetector { /** * Returns {@code true} if a scale gesture is in progress. + * + * @return boolean */ public boolean isInProgress() { return mInProgress; 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 d392ebf..59245f6 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/EntrySet.java @@ -199,8 +199,12 @@ public class EntrySet { } } - /** + /*** * 在给定的范围内,计算 K 线图 entries 的最大值和最小值 + * + * @param start start + * @param end end + * @param stockIndexList stockIndexList */ public void computeMinMax(int start, int end, List stockIndexList) { int endValue; diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/StockDataTest.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/StockDataTest.java index 08b263a..e66962e 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/StockDataTest.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/StockDataTest.java @@ -39,7 +39,7 @@ public class StockDataTest { * parseKLineData * * @param data - * @return + * @return EntrySet */ public static EntrySet parseKLineData(String data) { final EntrySet entrySet = new EntrySet(); diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/render/AbstractRender.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/render/AbstractRender.java index 3a4f09d..4955893 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/render/AbstractRender.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/render/AbstractRender.java @@ -148,11 +148,15 @@ public abstract class AbstractRender { /** * 绘制 + * + * @param canvas canvas */ public abstract void render(Canvas canvas); /** * 获取 entry 数据 + * + * @return EntrySet */ public EntrySet getEntrySet() { return entrySet; @@ -237,6 +241,8 @@ public abstract class AbstractRender { /** * 设置 Y 轴极值增量 + * + * @param extremumYDelta extremumYDelta */ public void setExtremumYDelta(float extremumYDelta) { this.extremumYDelta = extremumYDelta; @@ -323,6 +329,8 @@ public abstract class AbstractRender { /** * 获取最大滚动量 + * + * @return float */ public float getMaxScrollOffset() { return -maxScrollOffset; @@ -330,6 +338,8 @@ public abstract class AbstractRender { /** * 获取当前滚动量 + * + * @return float */ public float getCurrentTransX() { return touchValues[MTRANS_X]; @@ -365,6 +375,7 @@ public abstract class AbstractRender { * 获取给定的 entryIndex 对应的滚动偏移量 * * @param entryIndex entry 索引 + * @return float */ public float getTransX(int entryIndex) { touchPts[0] = entryIndex; @@ -604,7 +615,6 @@ public abstract class AbstractRender { touchValues[MTRANS_X] = touchValues[MTRANS_X] / lastMaxScrollOffset * maxScrollOffset; - matrixTouch.postTranslate(touchValues[MTRANS_X], 0); viewRectChange = false; @@ -634,6 +644,7 @@ public abstract class AbstractRender { * * @param visibleCount 当前显示区域的 X 轴方向上需要显示多少个 entry 值 * @param entryIndex entry 索引 + * @return float */ protected float getTransX(float visibleCount, int entryIndex) { final int entrySetSize = entrySet.getEntryList().size(); @@ -664,6 +675,10 @@ public abstract class AbstractRender { /** * 扩大显示区域内 Y 轴的范围,这看起来会好看一点 + * + * @param extremumY extremumY + * @param minY minY + * @param deltaY deltaY */ protected void computeExtremumValue(float[] extremumY, float minY, float deltaY) { computeExtremumValue(extremumY, minY, deltaY, extremumYScale, extremumYDelta); @@ -671,6 +686,12 @@ public abstract class AbstractRender { /** * 扩大显示区域内 Y 轴的范围,这看起来会好看一点 + * + * @param extremumY extremumY + * @param minY minY + * @param deltaY deltaY + * @param extremumYScale extremumYScale + * @param extremumYDelta extremumYDelta */ protected void computeExtremumValue(float[] extremumY, float minY, float deltaY, float extremumYScale, float extremumYDelta) { final float deltaYScale = deltaY * extremumYScale - deltaY; diff --git a/ikvStockChart/src/test/java/com/wordplat/ikvstockchart/ExampleTest.java b/ikvStockChart/src/test/java/com/wordplat/ikvstockchart/ExampleTest.java index 5f463f1..4663bd3 100644 --- a/ikvStockChart/src/test/java/com/wordplat/ikvstockchart/ExampleTest.java +++ b/ikvStockChart/src/test/java/com/wordplat/ikvstockchart/ExampleTest.java @@ -9,7 +9,6 @@ import static org.mockito.Mockito.mock; public class ExampleTest { private final InteractiveKLineView lineView = mock(InteractiveKLineView.class); - @Test public void setKLineHandler() { lineView.setKLineHandler(new KLineHandler() { @@ -44,47 +43,36 @@ public class ExampleTest { } }); } - @Test public void EnableRightRefresh() { lineView.setEnableRightRefresh(true); } - @Test public void isRefreshing() { lineView.isRefreshing(); } - @Test public void isRefresh() { lineView.isRefresh(); } - @Test public void isHighlighting() { lineView.isHighlighting(); } - @Test public void refreshComplete() { lineView.refreshComplete(true); } - @Test public void unsubscribeVoiceEvents() { lineView.unsubscribeVoiceEvents(); - } - @Test public void isBoundToWindow() { lineView.isBoundToWindow(); } - @Test public void setOnTouchInterface() { lineView.setOnTouchInterface((getAction, endUpY) -> false); } - - } -- Gitee