From 00cbc70133cb415448738f12d8c6e29c6866f685 Mon Sep 17 00:00:00 2001 From: Pfuster12 Date: Mon, 22 Jun 2020 09:36:25 +0100 Subject: [PATCH] fix(overlay): convert x pixels to point value Touch listener returns X Point value instead of pixels in screen. Fixes #13 --- .../java/com/yabu/livechart/view/LiveChartTouchOverlay.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt b/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt index 0c7c6d3..116073e 100644 --- a/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt +++ b/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt @@ -238,6 +238,10 @@ class LiveChartTouchOverlay(context: Context, attrs: AttributeSet?) } } + private fun Float.xPixelsToPoint(): Float { + return this*xBoundsToPixels() + } + /** * Transform a X Axis data point to screen pixels. */ @@ -264,7 +268,7 @@ class LiveChartTouchOverlay(context: Context, attrs: AttributeSet?) overlayPoint.y = coordinates[1] - (chartStyle.overlayCircleDiameter/2) touchListener?.onTouchCallback(DataPoint( - x = coordinates[0], + x = coordinates[0].xPixelsToPoint(), y = coordinates[1].yPixelsToPoint() )) @@ -285,7 +289,7 @@ class LiveChartTouchOverlay(context: Context, attrs: AttributeSet?) overlayPoint.y = coordinates[1] - (chartStyle.overlayCircleDiameter/2) touchListener?.onTouchCallback(DataPoint( - x = coordinates[0], + x = coordinates[0].xPixelsToPoint(), y = coordinates[1].yPixelsToPoint() ))