From 99873f8edb396025fec4ca4d2147c56e7de30e63 Mon Sep 17 00:00:00 2001 From: wangyiqian Date: Thu, 2 Jun 2022 11:38:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=83=8C=E6=99=AF=E7=BD=91?= =?UTF-8?q?=E6=A0=BC=E7=BA=BF=E9=85=8D=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wangyiqian/stockchart/StockChart.kt | 5 ++- .../wangyiqian/stockchart/StockChartConfig.kt | 43 ++++++++++--------- samples/build.gradle | 2 +- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/StockChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/StockChart.kt index 9f53f00..310216a 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/StockChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/StockChart.kt @@ -276,8 +276,9 @@ class StockChart @JvmOverloads constructor(context: Context, attrs: AttributeSet backgroundGridPaint.pathEffect = config.gridLinePathEffect if (config.gridHorizontalLineCount > 0) { - val space = height.toFloat() / (config.gridHorizontalLineCount + 1) - var top = config.horizontalGridLineTopOffset ?: space + val space = config.horizontalGridLineSpaceCalculator?.invoke(this) + ?: height.toFloat() / (config.gridHorizontalLineCount + 1) + var top = config.horizontalGridLineTopOffsetCalculator?.invoke(this) ?: space for (i in 1..config.gridHorizontalLineCount) { canvas.drawLine( diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/StockChartConfig.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/StockChartConfig.kt index 798737d..68c7546 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/StockChartConfig.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/StockChartConfig.kt @@ -135,30 +135,33 @@ class StockChartConfig { // 背景网格线条虚线配置 var gridLinePathEffect: PathEffect? = null - // 背景网格第一条线的顶部偏移量,默认是高度按照网格线数量平均分后的距离 - var horizontalGridLineTopOffset: Float? = null + // 背景网格横线第一条线的顶部偏移量 + var horizontalGridLineTopOffsetCalculator: ((StockChart) -> Float)? = null - // 背景网格左侧偏移量 + // 背景网格横线左侧偏移量 var horizontalGridLineLeftOffset: Float = DEFAULT_HORIZONTAL_GRID_LINE_LEFT_OFFSET + // 背景网格横线间距 + var horizontalGridLineSpaceCalculator: ((StockChart) -> Float)? = null + var valueTendToZero = DEFAULT_VALUE_TEND_TO_ZERO // 加载更多监听 var onLoadMoreListener: OnLoadMoreListener? = null - set(value) { - field?.apply { removeOnLoadMoreListener(this) } - value?.apply { addOnLoadMoreListener(this)} - field = value + set(value) { + field?.apply { removeOnLoadMoreListener(this) } + value?.apply { addOnLoadMoreListener(this) } + field = value - } + } // 手势监听 var onGestureListener: OnGestureListener? = null - set(value) { - field?.apply { removeOnGestureListener(this) } - value?.apply { addOnGestureListener(this) } - field = value - } + set(value) { + field?.apply { removeOnGestureListener(this) } + value?.apply { addOnGestureListener(this) } + field = value + } val childChartFactories = mutableListOf>() @@ -241,7 +244,7 @@ class StockChartConfig { */ fun insertKEntities(index: Int, kEntities: List) { check(index in this.kEntities.indices) { "Index $index out of bounds for length ${kEntities.size}" } - if(index <= showEndIndex) { + if (index <= showEndIndex) { showEndIndex += kEntities.size showStartIndex += kEntities.size } @@ -252,11 +255,11 @@ class StockChartConfig { /** * 删除一个K线数据点 */ - fun removeKEntity(index: Int){ + fun removeKEntity(index: Int) { check(index in this.kEntities.indices) { "Index $index out of bounds for length ${kEntities.size}" } - if(index <= showEndIndex){ - showEndIndex -- - showStartIndex -- + if (index <= showEndIndex) { + showEndIndex-- + showStartIndex-- } this.kEntities.removeAt(index) modifyKEntitiesFlag = true @@ -286,14 +289,14 @@ class StockChartConfig { /** * 添加手势监听 */ - fun addOnGestureListener(listener: OnGestureListener){ + fun addOnGestureListener(listener: OnGestureListener) { onGestureListeners.add(listener) } /** * 移除手势监听 */ - fun removeOnGestureListener(listener: OnGestureListener){ + fun removeOnGestureListener(listener: OnGestureListener) { onGestureListeners.remove(listener) } diff --git a/samples/build.gradle b/samples/build.gradle index 45c1cca..8af2a7a 100644 --- a/samples/build.gradle +++ b/samples/build.gradle @@ -71,5 +71,5 @@ dependencies { implementation 'com.google.android:flexbox:2.0.1' // implementation project(':lib') - implementation 'com.github.wangyiqian:StockChart:1.1.2' + implementation 'com.github.wangyiqian:StockChart:1.1.3' } \ No newline at end of file