From 2009c0ff9c9f5c05bd8f6e5dc70df0c3bd092c8a Mon Sep 17 00:00:00 2001 From: afon Date: Mon, 24 Apr 2017 12:36:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E8=AE=BE=E7=BD=AE=20Y=20?= =?UTF-8?q?=E8=BD=B4=E6=A0=87=E7=AD=BE=E5=AF=B9=E9=BD=90=E6=96=B9=E5=90=91?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGE_LOG.md | 6 + PROPERTY.md | 151 +++++++++--------- README.md | 4 +- .../activity_macd_rsi_kdj_show_together.xml | 4 +- .../ikvstockchart/compat/ViewUtils.java | 2 + .../drawing/KLineGridAxisDrawing.java | 10 +- .../drawing/StockIndexYLabelDrawing.java | 12 +- .../ikvstockchart/entry/SizeColor.java | 9 ++ ikvStockChart/src/main/res/values/attrs.xml | 4 + 9 files changed, 121 insertions(+), 81 deletions(-) diff --git a/CHANGE_LOG.md b/CHANGE_LOG.md index 63c7fd5..07f194c 100644 --- a/CHANGE_LOG.md +++ b/CHANGE_LOG.md @@ -1,3 +1,9 @@ +### 0.1.2 + +> 2017.04.24 + +添加 设置 Y 轴标签对齐方向属性 + ### 0.1.1 > 2017.04.17 diff --git a/PROPERTY.md b/PROPERTY.md index 7bc3fc7..4458c98 100644 --- a/PROPERTY.md +++ b/PROPERTY.md @@ -1,102 +1,103 @@ ### 与轴、网格有关的属性和方法 -| XML | Java Code | Comment | -| -------------------- | ------------------- | --------------- | -| app:xLabelSize | setXLabelSize | X 轴标签字符大小 | -| app:xLabelColor | setXLabelColor | X 轴标签字符颜色 | -| app:xLabelViewHeight | setXLabelViewHeight | X 轴 Label 区域的高度 | -| app:yLabelSize | setYLabelSize | Y 轴标签字符大小 | -| app:yLabelColor | setYLabelColor | Y 轴标签字符颜色 | -| app:axisSize | setAxisSize | 轴线条大小 | -| app:axisColor | setAxisColor | 轴线条颜色 | -| app:gridSize | setGridSize | 网格线大小 | -| app:gridColor | setGridColor | 网格线颜色 | +| XML | Java Code | Comment | Since | +| -------------------- | ------------------- | --------------------------- | ----- | +| app:xLabelSize | setXLabelSize | X 轴标签字符大小 | 0.1.0 | +| app:xLabelColor | setXLabelColor | X 轴标签字符颜色 | 0.1.0 | +| app:xLabelViewHeight | setXLabelViewHeight | X 轴 Label 区域的高度 | 0.1.0 | +| app:yLabelSize | setYLabelSize | Y 轴标签字符大小 | 0.1.0 | +| app:yLabelColor | setYLabelColor | Y 轴标签字符颜色 | 0.1.0 | +| app:yLabelAlign | setYLabelAlign | Y 轴标签对齐方向 1: left, 2: right | 0.1.2 | +| app:axisSize | setAxisSize | 轴线条大小 | 0.1.0 | +| app:axisColor | setAxisColor | 轴线条颜色 | 0.1.0 | +| app:gridSize | setGridSize | 网格线大小 | 0.1.0 | +| app:gridColor | setGridColor | 网格线颜色 | 0.1.0 | ### 与高亮、MarkerView 有关的属性和方法 -| XML | Java Code | Comment | -| --------------------- | -------------------- | --------------- | -| app:highlightSize | setHighlightSize | 高亮线条大小 | -| app:highlightColor | setHighlightColor | 高亮线条颜色 | -| app:markerBorderSize | setMarkerBorderSize | MarkerView 边框大小 | -| app:markerBorderColor | setMarkerBorderColor | MarkerView 边框颜色 | -| app:markerTextSize | setMarkerTextSize | MarkerView 字符大小 | -| app:markerTextColor | setMarkerTextColor | MarkerView 字符颜色 | +| XML | Java Code | Comment | Since | +| --------------------- | -------------------- | --------------- | ----- | +| app:highlightSize | setHighlightSize | 高亮线条大小 | 0.1.0 | +| app:highlightColor | setHighlightColor | 高亮线条颜色 | 0.1.0 | +| app:markerBorderSize | setMarkerBorderSize | MarkerView 边框大小 | 0.1.0 | +| app:markerBorderColor | setMarkerBorderColor | MarkerView 边框颜色 | 0.1.0 | +| app:markerTextSize | setMarkerTextSize | MarkerView 字符大小 | 0.1.0 | +| app:markerTextColor | setMarkerTextColor | MarkerView 字符颜色 | 0.1.0 | ### 与分时图有关的属性和方法 -| XML | Java Code | Comment | -| ----------------- | ---------------- | ------- | -| app:timeLineSize | setTimeLineSize | 分时线大小 | -| app:timeLineColor | setTimeLineColor | 分时线颜色 | +| XML | Java Code | Comment | Since | +| ----------------- | ---------------- | ------- | ----- | +| app:timeLineSize | setTimeLineSize | 分时线大小 | 0.1.0 | +| app:timeLineColor | setTimeLineColor | 分时线颜色 | 0.1.0 | ### 与蜡烛图有关的属性和方法 -| XML | Java Code | Comment | -| ------------------------------- | ------------------------------ | ------------ | -| app:candleBorderSize | setCandleBorderSize | 蜡烛图矩形边框大小 | -| app:candleExtremumLabelSize | setCandleExtremumLabelSize | 蜡烛图极值字符大小 | -| app:candleExtremumLableColor | setCandleExtremumLableColor | 蜡烛图极值字符颜色 | -| app:shadowSize | setShadowSize | 影线大小 | -| app:increasingColor | setIncreasingColor | 上涨颜色 | -| app:decreasingColor | setDecreasingColor | 下跌颜色 | -| app:neutralColor | setNeutralColor | 不涨不跌颜色 | -| app:portraitDefaultVisibleCount | setPortraitDefaultVisibleCount | 竖屏默认显示多少个蜡烛图 | -| app:zoomInTimes | setZoomInTimes | 最多放大次数 | -| app:zoomOutTimes | setZoomOutTimes | 最多缩小次数 | +| XML | Java Code | Comment | Since | +| ------------------------------- | ------------------------------ | ------------ | ----- | +| app:candleBorderSize | setCandleBorderSize | 蜡烛图矩形边框大小 | 0.1.0 | +| app:candleExtremumLabelSize | setCandleExtremumLabelSize | 蜡烛图极值字符大小 | 0.1.0 | +| app:candleExtremumLableColor | setCandleExtremumLableColor | 蜡烛图极值字符颜色 | 0.1.0 | +| app:shadowSize | setShadowSize | 影线大小 | 0.1.0 | +| app:increasingColor | setIncreasingColor | 上涨颜色 | 0.1.0 | +| app:decreasingColor | setDecreasingColor | 下跌颜色 | 0.1.0 | +| app:neutralColor | setNeutralColor | 不涨不跌颜色 | 0.1.0 | +| app:portraitDefaultVisibleCount | setPortraitDefaultVisibleCount | 竖屏默认显示多少个蜡烛图 | 0.1.0 | +| app:zoomInTimes | setZoomInTimes | 最多放大次数 | 0.1.0 | +| app:zoomOutTimes | setZoomOutTimes | 最多缩小次数 | 0.1.0 | ### 与股票指标有关的属性和方法 -| XML | Java Code | Comment | -| -------------------------- | ------------------------- | --------------- | -| app:maLineSize | setMaLineSize | MA 平均线大小 | -| app:ma5Color | setMa5Color | MA5 平均线颜色 | -| app:ma10Color | setMa10Color | MA10 平均线颜色 | -| app:ma20Color | setMa20Color | MA20 平均线颜色 | -| app:bollLineSize | setBollLineSize | BOLL 线条大小 | -| app:bollMidLineColor | setBollMidLineColor | BOLL MID 线条颜色 | -| app:bollUpperLineColor | setBollUpperLineColor | BOLL UPPER 线条颜色 | -| app:bollLowerLineColor | setBollLowerLineColor | BOLL LOWER 线条颜色 | -| app:kdjLineSize | setKdjLineSize | KDJ 线条大小 | -| app:kdjKLineColor | setKdjKLineColor | KDJ K 线条颜色 | -| app:kdjDLineColor | setKdjDLineColor | KDJ D 线条颜色 | -| app:kdjJLineColor | setKdjJLineColor | KDJ J 线条颜色 | -| app:macdLineSize | setMacdLineSize | MACD 两条线大小 | -| app:macdHighlightTextColor | setMacdHighlightTextColor | 高亮的 MACD 字符颜色 | -| app:deaLineColor | setDeaLineColor | DEA 线条颜色 | -| app:diffLineColor | setDiffLineColor | DIFF 线条颜色 | -| app:rsiLineSize | setRsiLineSize | RSI 线条大小 | -| app:rsi1LineColor | setRsi1LineColor | RSI 第一条线颜色 | -| app:rsi2LineColor | setRsi2LineColor | RSI 第二条线颜色 | -| app:rsi3LineColor | setRsi3LineColor | RSI 第三条线颜色 | -| app:maTextSize | setMaTextSize | MA 字符大小 | -| app:maTextColor | setMaTextColor | MA 字符颜色 | -| app:bollTextSize | setBollTextSize | BOLL 字符大小 | -| app:bollTextColor | setBollTextColor | BOLL 字符颜色 | -| app:kdjTextSize | setKdjTextSize | KDJ 字符大小 | -| app:kdjTextColor | setKdjTextColor | KDJ 字符颜色 | -| app:macdTextSize | setMacdTextSize | MACD 字符大小 | -| app:macdTextColor | setMacdTextColor | MACD 字符颜色 | -| app:rsiTextSize | setRsiTextSize | RSI 字符大小 | -| app:rsiTextColor | setRsiTextColor | RSI 字符颜色 | +| XML | Java Code | Comment | Since | +| -------------------------- | ------------------------- | --------------- | ----- | +| app:maLineSize | setMaLineSize | MA 平均线大小 | 0.1.0 | +| app:ma5Color | setMa5Color | MA5 平均线颜色 | 0.1.0 | +| app:ma10Color | setMa10Color | MA10 平均线颜色 | 0.1.0 | +| app:ma20Color | setMa20Color | MA20 平均线颜色 | 0.1.0 | +| app:bollLineSize | setBollLineSize | BOLL 线条大小 | 0.1.0 | +| app:bollMidLineColor | setBollMidLineColor | BOLL MID 线条颜色 | 0.1.0 | +| app:bollUpperLineColor | setBollUpperLineColor | BOLL UPPER 线条颜色 | 0.1.0 | +| app:bollLowerLineColor | setBollLowerLineColor | BOLL LOWER 线条颜色 | 0.1.0 | +| app:kdjLineSize | setKdjLineSize | KDJ 线条大小 | 0.1.0 | +| app:kdjKLineColor | setKdjKLineColor | KDJ K 线条颜色 | 0.1.0 | +| app:kdjDLineColor | setKdjDLineColor | KDJ D 线条颜色 | 0.1.0 | +| app:kdjJLineColor | setKdjJLineColor | KDJ J 线条颜色 | 0.1.0 | +| app:macdLineSize | setMacdLineSize | MACD 两条线大小 | 0.1.0 | +| app:macdHighlightTextColor | setMacdHighlightTextColor | 高亮的 MACD 字符颜色 | 0.1.0 | +| app:deaLineColor | setDeaLineColor | DEA 线条颜色 | 0.1.0 | +| app:diffLineColor | setDiffLineColor | DIFF 线条颜色 | 0.1.0 | +| app:rsiLineSize | setRsiLineSize | RSI 线条大小 | 0.1.0 | +| app:rsi1LineColor | setRsi1LineColor | RSI 第一条线颜色 | 0.1.0 | +| app:rsi2LineColor | setRsi2LineColor | RSI 第二条线颜色 | 0.1.0 | +| app:rsi3LineColor | setRsi3LineColor | RSI 第三条线颜色 | 0.1.0 | +| app:maTextSize | setMaTextSize | MA 字符大小 | 0.1.0 | +| app:maTextColor | setMaTextColor | MA 字符颜色 | 0.1.0 | +| app:bollTextSize | setBollTextSize | BOLL 字符大小 | 0.1.0 | +| app:bollTextColor | setBollTextColor | BOLL 字符颜色 | 0.1.0 | +| app:kdjTextSize | setKdjTextSize | KDJ 字符大小 | 0.1.0 | +| app:kdjTextColor | setKdjTextColor | KDJ 字符颜色 | 0.1.0 | +| app:macdTextSize | setMacdTextSize | MACD 字符大小 | 0.1.0 | +| app:macdTextColor | setMacdTextColor | MACD 字符颜色 | 0.1.0 | +| app:rsiTextSize | setRsiTextSize | RSI 字符大小 | 0.1.0 | +| app:rsiTextColor | setRsiTextColor | RSI 字符颜色 | 0.1.0 | ### 其它 -| XML | Java Code | Comment | -| -------------------- | ------------------- | ------------ | -| app:loadingTextSize | setLoadingTextSize | loading 字符大小 | -| app:loadingTextColor | setLoadingTextColor | loading 字符颜色 | -| app:loadingText | setLoadingText | loading 字符 | -| app:errorTextSize | setErrorTextSize | error 字符大小 | -| app:errorTextColor | setErrorTextColor | error 字符颜色 | -| app:errorText | setErrorText | error 字符 | \ No newline at end of file +| XML | Java Code | Comment | Since | +| -------------------- | ------------------- | ------------ | ----- | +| app:loadingTextSize | setLoadingTextSize | loading 字符大小 | 0.1.0 | +| app:loadingTextColor | setLoadingTextColor | loading 字符颜色 | 0.1.0 | +| app:loadingText | setLoadingText | loading 字符 | 0.1.0 | +| app:errorTextSize | setErrorTextSize | error 字符大小 | 0.1.0 | +| app:errorTextColor | setErrorTextColor | error 字符颜色 | 0.1.0 | +| app:errorText | setErrorText | error 字符 | 0.1.0 | \ No newline at end of file diff --git a/README.md b/README.md index 5ad68c2..d3f57b4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## Features -当前最新版本:0.1.1 (2017.04.17) +当前最新版本:0.1.2 (2017.04.24) 支持在 XML 布局文件和代码中设置各个线条颜色、大小配置 @@ -23,7 +23,7 @@ ## Usage ```groovy -compile 'com.wordplat:ikvStockChart:0.1.1' +compile 'com.wordplat:ikvStockChart:0.1.2' ``` ```xml diff --git a/app/src/main/res/layout/activity_macd_rsi_kdj_show_together.xml b/app/src/main/res/layout/activity_macd_rsi_kdj_show_together.xml index 8b706f9..aab3298 100644 --- a/app/src/main/res/layout/activity_macd_rsi_kdj_show_together.xml +++ b/app/src/main/res/layout/activity_macd_rsi_kdj_show_together.xml @@ -1,6 +1,7 @@ @@ -8,6 +9,7 @@ + android:layout_height="match_parent" + app:yLabelAlign="right"/> \ No newline at end of file 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 009ce36..aba1f26 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/compat/ViewUtils.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/compat/ViewUtils.java @@ -77,6 +77,8 @@ public static SizeColor getSizeColor(Context context, AttributeSet attrs, int de sizeColor.setYLabelColor(a.getColor(R.styleable.InteractiveKLineView_yLabelColor, sizeColor.getYLabelColor())); + sizeColor.setYLabelAlign(a.getInteger(R.styleable.InteractiveKLineView_yLabelAlign, 1)); + sizeColor.setAxisSize(a.getDimension(R.styleable.InteractiveKLineView_axisSize, sizeColor.getAxisSize())); diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KLineGridAxisDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KLineGridAxisDrawing.java index 6068b97..31bc763 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KLineGridAxisDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KLineGridAxisDrawing.java @@ -51,6 +51,8 @@ public class KLineGridAxisDrawing implements IDrawing { private final float[] pointCache = new float[2]; private float lineHeight; + private int yLabelAlign = 1; // Y 轴标签对齐方向 1: left, 2: right + @Override public void onInit(RectF contentRect, AbstractRender render) { this.render = (KLineRender) render; @@ -69,6 +71,10 @@ public void onInit(RectF contentRect, AbstractRender render) { } yLabelPaint.setTextSize(sizeColor.getYLabelSize()); yLabelPaint.setColor(sizeColor.getYLabelColor()); + yLabelAlign = sizeColor.getYLabelAlign(); + if (yLabelAlign == 2) { + yLabelPaint.setTextAlign(Paint.Align.RIGHT); + } if (axisPaint == null) { axisPaint = new Paint(Paint.ANTI_ALIAS_FLAG); @@ -158,7 +164,9 @@ public void onDrawOver(Canvas canvas) { pointCache[0] = lineTop + fontMetrics.bottom; } - canvas.drawText(value, kLineRect.left + 5, pointCache[0], yLabelPaint); + float labelX = yLabelAlign == 1 ? kLineRect.left + 5 : kLineRect.right - 5; + + canvas.drawText(value, labelX, pointCache[0], yLabelPaint); } } } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/StockIndexYLabelDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/StockIndexYLabelDrawing.java index ea8f16a..ebc3706 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/StockIndexYLabelDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/StockIndexYLabelDrawing.java @@ -42,6 +42,8 @@ public class StockIndexYLabelDrawing implements IDrawing { private final RectF indexRect = new RectF(); + private int yLabelAlign = 1; // Y 轴标签对齐方向 1: left, 2: right + @Override public void onInit(RectF contentRect, AbstractRender render) { final SizeColor sizeColor = render.getSizeColor(); @@ -52,6 +54,10 @@ public void onInit(RectF contentRect, AbstractRender render) { } yLabelPaint.setColor(sizeColor.getYLabelColor()); yLabelPaint.getFontMetrics(fontMetrics); + yLabelAlign = sizeColor.getYLabelAlign(); + if (yLabelAlign == 2) { + yLabelPaint.setTextAlign(Paint.Align.RIGHT); + } indexRect.set(contentRect); } @@ -63,15 +69,17 @@ public void computePoint(int minIndex, int maxIndex, int currentIndex) { @Override public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, float maxY) { + float labelX = yLabelAlign == 1 ? indexRect.left + 5 : indexRect.right - 5; + canvas.drawText( decimalFormatter.format(maxY), - indexRect.left + 5, + labelX, indexRect.top - fontMetrics.top, yLabelPaint); canvas.drawText( decimalFormatter.format(minY), - indexRect.left + 5, + labelX, indexRect.bottom - fontMetrics.bottom, yLabelPaint); } diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/SizeColor.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/SizeColor.java index 7278b55..83d953d 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/SizeColor.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/entry/SizeColor.java @@ -36,6 +36,7 @@ public class SizeColor { private float xLabelViewHeight = 50; // X 轴 Label 区域的高度 private float yLabelSize = 21; // Y 轴标签字符大小 private int yLabelColor = 0xff282b34; // Y 轴标签字符颜色 + private int yLabelAlign = 1; // Y 轴标签对齐方向 1: left, 2: right private float axisSize = 2f; // 轴线条大小 private int axisColor = 0xffdddddd; // 轴线条颜色 @@ -82,6 +83,14 @@ public void setYLabelColor(int yLabelColor) { this.yLabelColor = yLabelColor; } + public int getYLabelAlign() { + return yLabelAlign; + } + + public void setYLabelAlign(int yLabelAlign) { + this.yLabelAlign = yLabelAlign; + } + public float getAxisSize() { return axisSize; } diff --git a/ikvStockChart/src/main/res/values/attrs.xml b/ikvStockChart/src/main/res/values/attrs.xml index 913ff74..894e696 100644 --- a/ikvStockChart/src/main/res/values/attrs.xml +++ b/ikvStockChart/src/main/res/values/attrs.xml @@ -10,6 +10,10 @@ + + + +