From 743210e77b04aadf24c49eed4bc9c5c98686ee2c Mon Sep 17 00:00:00 2001 From: xuyang Date: Tue, 26 Mar 2019 16:09:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=A89.0=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E4=B8=8Ak=E7=BA=BF=E5=9B=A0=E6=BB=91=E5=8A=A8?= =?UTF-8?q?=E8=80=8C=E6=B6=88=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wordplat/ikvstockchart/drawing/BOLLDrawing.java | 8 +++++++- .../wordplat/ikvstockchart/drawing/CandleDrawing.java | 9 ++++++++- .../ikvstockchart/drawing/HighlightDrawing.java | 10 ++++++++-- .../com/wordplat/ikvstockchart/drawing/KDJDrawing.java | 8 +++++++- .../ikvstockchart/drawing/KLineGridAxisDrawing.java | 8 +++++++- .../wordplat/ikvstockchart/drawing/MACDDrawing.java | 9 ++++++++- .../com/wordplat/ikvstockchart/drawing/MADrawing.java | 9 ++++++++- .../com/wordplat/ikvstockchart/drawing/RSIDrawing.java | 8 +++++++- 8 files changed, 60 insertions(+), 9 deletions(-) diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/BOLLDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/BOLLDrawing.java index fc86100..0b62ddd 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/BOLLDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/BOLLDrawing.java @@ -21,6 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Region; +import android.os.Build; import com.wordplat.ikvstockchart.entry.Entry; import com.wordplat.ikvstockchart.entry.EntrySet; @@ -129,7 +131,11 @@ public void computePoint(int minIndex, int maxIndex, int currentIndex) { @Override public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, float maxY) { canvas.save(); - canvas.clipRect(indexRect); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(indexRect, Region.Op.UNION); + }else{ + canvas.clipRect(indexRect); + } canvas.drawRect(indexRect, axisPaint); 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 70ae0d6..4ce8d16 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/CandleDrawing.java @@ -21,6 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Region; +import android.os.Build; import android.util.Log; import com.wordplat.ikvstockchart.compat.ViewUtils; @@ -87,7 +89,12 @@ public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, final SizeColor sizeColor = render.getSizeColor(); canvas.save(); - canvas.clipRect(kLineRect); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(kLineRect, Region.Op.UNION); + }else{ + canvas.clipRect(kLineRect); + } + // if (DEBUG) { // Log.i(TAG, "##d onComputeOver: minIndex = " + minIndex + ", maxIndex = " + maxIndex diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/HighlightDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/HighlightDrawing.java index 9b514b5..b011cbf 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/HighlightDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/HighlightDrawing.java @@ -21,7 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; -import android.text.TextPaint; +import android.graphics.Region; +import android.os.Build; import com.wordplat.ikvstockchart.entry.SizeColor; import com.wordplat.ikvstockchart.marker.IMarkerView; @@ -98,7 +99,12 @@ public void onDrawOver(Canvas canvas) { final float[] highlightPoint = render.getHighlightPoint(); canvas.save(); - canvas.clipRect(contentRect); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(contentRect, Region.Op.UNION); + }else{ + canvas.clipRect(contentRect); + } + if (markerViewList.size() > 0) { for (IMarkerView markerView : markerViewList) { diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KDJDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KDJDrawing.java index 12a7822..d373bd8 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KDJDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KDJDrawing.java @@ -21,6 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Region; +import android.os.Build; import com.wordplat.ikvstockchart.entry.Entry; import com.wordplat.ikvstockchart.entry.EntrySet; @@ -129,7 +131,11 @@ public void computePoint(int minIndex, int maxIndex, int currentIndex) { @Override public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, float maxY) { canvas.save(); - canvas.clipRect(indexRect); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(indexRect, Region.Op.UNION); + }else{ + canvas.clipRect(indexRect); + } canvas.drawRect(indexRect, axisPaint); 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 ec83c4e..9749d94 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KLineGridAxisDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/KLineGridAxisDrawing.java @@ -21,6 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Region; +import android.os.Build; import com.wordplat.ikvstockchart.align.YLabelAlign; import com.wordplat.ikvstockchart.entry.EntrySet; @@ -117,7 +119,11 @@ public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, } canvas.save(); - canvas.clipRect(kLineRect.left, kLineRect.top, kLineRect.right, kLineRect.bottom + sizeColor.getXLabelViewHeight()); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(kLineRect.left, kLineRect.top, kLineRect.right, kLineRect.bottom + sizeColor.getXLabelViewHeight(), Region.Op.UNION); + }else{ + canvas.clipRect(kLineRect.left, kLineRect.top, kLineRect.right, kLineRect.bottom + sizeColor.getXLabelViewHeight()); + } // 每隔特定个 entry,绘制一条竖向网格线和 X 轴 label final int count = render.getZoomTimes() < 0 ? Math.abs(7 * render.getZoomTimes()) + 2 : 7; diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MACDDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MACDDrawing.java index e27ea42..4f3c7a2 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MACDDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MACDDrawing.java @@ -21,6 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Region; +import android.os.Build; import com.wordplat.ikvstockchart.entry.Entry; import com.wordplat.ikvstockchart.entry.EntrySet; @@ -131,7 +133,12 @@ public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, final SizeColor sizeColor = render.getSizeColor(); canvas.save(); - canvas.clipRect(indexRect); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(indexRect, Region.Op.UNION); + }else{ + canvas.clipRect(indexRect); + } + canvas.drawRect(indexRect, axisPaint); diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MADrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MADrawing.java index 7d7f6d7..ae44ab8 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MADrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/MADrawing.java @@ -21,6 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Region; +import android.os.Build; import com.wordplat.ikvstockchart.entry.Entry; import com.wordplat.ikvstockchart.entry.EntrySet; @@ -113,7 +115,12 @@ public void computePoint(int minIndex, int maxIndex, int currentIndex) { @Override public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, float maxY) { canvas.save(); - canvas.clipRect(candleRect); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(candleRect, Region.Op.UNION); + }else{ + canvas.clipRect(candleRect); + } + render.mapPoints(ma5Buffer); render.mapPoints(ma10Buffer); diff --git a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/RSIDrawing.java b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/RSIDrawing.java index 0d84fe2..5740044 100644 --- a/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/RSIDrawing.java +++ b/ikvStockChart/src/main/java/com/wordplat/ikvstockchart/drawing/RSIDrawing.java @@ -21,6 +21,8 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; +import android.graphics.Region; +import android.os.Build; import com.wordplat.ikvstockchart.entry.Entry; import com.wordplat.ikvstockchart.entry.EntrySet; @@ -129,7 +131,11 @@ public void computePoint(int minIndex, int maxIndex, int currentIndex) { @Override public void onComputeOver(Canvas canvas, int minIndex, int maxIndex, float minY, float maxY) { canvas.save(); - canvas.clipRect(indexRect); + if(Build.VERSION.SDK_INT >= 28) { + canvas.clipRect(indexRect, Region.Op.UNION); + }else{ + canvas.clipRect(indexRect); + } canvas.drawRect(indexRect, axisPaint);