diff --git a/library/src/main/java/com/dzeio/charts/series/BarSerie.kt b/library/src/main/java/com/dzeio/charts/series/BarSerie.kt index 30654b9..9ed2d3a 100644 --- a/library/src/main/java/com/dzeio/charts/series/BarSerie.kt +++ b/library/src/main/java/com/dzeio/charts/series/BarSerie.kt @@ -5,7 +5,6 @@ import android.graphics.Color import android.graphics.Paint import android.graphics.Rect import android.graphics.RectF -import android.util.Log import com.dzeio.charts.ChartView import com.dzeio.charts.utils.drawRoundRect @@ -33,6 +32,13 @@ class BarSerie( textAlign = Paint.Align.CENTER } + var textExternalPaint = Paint().apply { + isAntiAlias = true + color = Color.BLACK + textSize = 30f + textAlign = Paint.Align.CENTER + } + private val rect = Rect() override fun onDraw(canvas: Canvas, drawableSpace: RectF) { @@ -45,7 +51,8 @@ class BarSerie( for (entry in displayedEntries) { // calculated height in percent from 0 to 100 - val top = (1 - entry.y / max) * drawableSpace.height() + drawableSpace.top + val top = ((1 - (entry.y - min) / (max - min)) * drawableSpace.height() + drawableSpace.top) + .coerceAtMost(drawableSpace.bottom) var posX = drawableSpace.left + view.xAxis.getPositionOnRect( entry, drawableSpace @@ -114,7 +121,7 @@ class BarSerie( text, textLeft, textY, - textPaint + if (doDisplayIn) textPaint else textExternalPaint ) } } 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 289e8cc..b322f42 100644 --- a/library/src/main/java/com/dzeio/charts/series/LineSerie.kt +++ b/library/src/main/java/com/dzeio/charts/series/LineSerie.kt @@ -35,13 +35,14 @@ class LineSerie( val displayedEntries = getDisplayedEntries() displayedEntries.sortBy { it.x } val max = view.yAxis.getYMax() + val min = view.yAxis.getYMin() var previousPosX: Float? = null var previousPosY: Float? = null for (entry in displayedEntries) { // calculated height in percent from 0 to 100 - val top = (1 - entry.y / max) * drawableSpace.height() + drawableSpace.top + val top = (1 - (entry.y - min) / (max - min)) * drawableSpace.height() + drawableSpace.top val posX = (drawableSpace.left + view.xAxis.getPositionOnRect(entry, drawableSpace) + view.xAxis.getEntryWidth(drawableSpace) / 2f).toFloat()