diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 6596e79..d5e9e55 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -24,7 +24,7 @@ publishing { } android { - namespace = "${group}.${artifact}" + namespace = "$group.$artifact" compileSdk = 33 buildToolsVersion = "33.0.0" diff --git a/library/src/main/java/com/dzeio/charts/series/LineSerie.kt b/library/src/main/java/com/dzeio/charts/series/LineSerie.kt index adb5cbd..3a8ecc5 100644 --- a/library/src/main/java/com/dzeio/charts/series/LineSerie.kt +++ b/library/src/main/java/com/dzeio/charts/series/LineSerie.kt @@ -5,6 +5,7 @@ import android.graphics.Color import android.graphics.Paint import android.graphics.RectF import com.dzeio.charts.ChartViewInterface +import com.dzeio.charts.utils.drawDottedLine import kotlin.math.abs class LineSerie( @@ -25,6 +26,21 @@ class LineSerie( strokeWidth = 5f } + /** + * is the line dotted + */ + var dotted = false + + /** + * do we display the points? + */ + var displayPoints = true + + /** + * do we display the lines + */ + var displayLines = true + val textPaint = Paint().apply { isAntiAlias = true color = Color.BLACK @@ -98,12 +114,12 @@ class LineSerie( ) // draw smol point - if (drawableSpace.contains(posX, top)) { + if (drawableSpace.contains(posX, top) && displayPoints) { canvas.drawCircle(posX, top, paint.strokeWidth, paint) } // draw line - if (doDraw && previousPosY != null && previousPosX != null) { + if (doDraw && previousPosY != null && previousPosX != null && displayLines) { var startX = previousPosX var startY = previousPosY var stopX = posX @@ -165,7 +181,24 @@ class LineSerie( debugPaint.color = Color.RED } } - canvas.drawLine(startX, startY, stopX, stopY, if (view.debug) debugPaint else linePaint) + if (dotted) { + canvas.drawDottedLine( + startX, + startY, + stopX, + stopY, + 32f, + if (view.debug) debugPaint else linePaint + ) + } else { + canvas.drawLine( + startX, + startY, + stopX, + stopY, + if (view.debug) debugPaint else linePaint + ) + } } previousPosX = posX previousPosY = top diff --git a/sample/src/main/java/com/dzeio/chartsapp/ui/ChartFragment.kt b/sample/src/main/java/com/dzeio/chartsapp/ui/ChartFragment.kt index 35164e7..0631afa 100644 --- a/sample/src/main/java/com/dzeio/chartsapp/ui/ChartFragment.kt +++ b/sample/src/main/java/com/dzeio/chartsapp/ui/ChartFragment.kt @@ -138,6 +138,23 @@ class ChartFragment : Fragment() { chart.refresh() } } + + if (args.chartType === "linechart") { + binding.lineItem.visibility = View.VISIBLE + + binding.lineDisplayLines.setOnCheckedChangeListener { _, isChecked -> + chart.series.forEach { (it as LineSerie).displayLines = isChecked } + chart.refresh() + } + binding.lineDisplayPoints.setOnCheckedChangeListener { _, isChecked -> + chart.series.forEach { (it as LineSerie).displayPoints = isChecked } + chart.refresh() + } + binding.lineDotted.setOnCheckedChangeListener { _, isChecked -> + chart.series.forEach { (it as LineSerie).dotted = isChecked } + chart.refresh() + } + } } private var lastGenerated = 0 diff --git a/sample/src/main/res/layout/fragment_chart.xml b/sample/src/main/res/layout/fragment_chart.xml index 9bf58ff..c2fa45a 100644 --- a/sample/src/main/res/layout/fragment_chart.xml +++ b/sample/src/main/res/layout/fragment_chart.xml @@ -209,6 +209,36 @@ + + + + + + + + + +