diff --git a/README.md b/README.md index 08faf6248e0fa25f2bbcabc92db8b5030c89aa73..97f8c02d498f5e6e195fc11246543430249ae5db 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 bdfcf5c5f59355b158c15a661647667c8a05d839..adc7985040cf9e3e4b2445a28d37f28174c6bc6e 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 02978e944909cd8e12cd8a752ec600f42123ec7f..6aa274aa9aa11cfc232159481e8df61639cfe75d 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 7022bf6d8bcf3545c39f9764b93df3e8cd37d75c..01b535f6e3071ced66c6129e61388cb53c887e68 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 b5f98ce050cac1d93d95658d7c14529d90ea25a9..f37c0e4cbbee940164f851c6d6b4f8bf8e6e448d 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 d392ebf11113a5fb9f910328afdf397f9ba2922d..59245f631b1c0379d274f77f7267dcb8cf8a25ec 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 08b263a37ee2a352c3b66b0891ef1be35ce2275c..e66962e19e2add6f399ee1f3ff4461340739c9ca 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 3a4f09d65ae91e5354acea6eb788933472a2bd4c..495589359fb94383985374c2c5842027d2a377fd 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 5f463f133db165d73b036359f99b1c97ed7bf8b5..4663bd3f8e6529dcd373e0c49ab0b82fddfd17ca 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); } - - }