Skip to content

Commit 60f6791

Browse files
committed
Use other Canvas function
1 parent da4a69c commit 60f6791

File tree

10 files changed

+45
-59
lines changed

10 files changed

+45
-59
lines changed

chartLib/src/main/kotlin/info/appdev/charting/renderer/BarChartRenderer.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import info.appdev.charting.interfaces.datasets.IBarDataSet
1212
import info.appdev.charting.utils.Fill
1313
import info.appdev.charting.utils.PointF
1414
import info.appdev.charting.utils.Transformer
15-
import info.appdev.charting.utils.Utils
1615
import info.appdev.charting.utils.ViewPortHandler
1716
import info.appdev.charting.utils.calcTextHeight
1817
import info.appdev.charting.utils.convertDpToPixel
18+
import info.appdev.charting.utils.drawImage
1919
import kotlin.math.ceil
2020
import kotlin.math.min
2121

@@ -332,8 +332,7 @@ open class BarChartRenderer(
332332
py += iconsOffset.y
333333

334334
icon?.let {
335-
Utils.drawImage(
336-
canvas,
335+
canvas.drawImage(
337336
it,
338337
px.toInt(),
339338
py.toInt()
@@ -392,8 +391,7 @@ open class BarChartRenderer(
392391
py += iconsOffset.y
393392

394393
icon?.let {
395-
Utils.drawImage(
396-
canvas,
394+
canvas.drawImage(
397395
it,
398396
px.toInt(),
399397
py.toInt()
@@ -471,8 +469,7 @@ open class BarChartRenderer(
471469
val icon = barEntry.icon
472470

473471
icon?.let {
474-
Utils.drawImage(
475-
canvas,
472+
canvas.drawImage(
476473
it,
477474
(x + iconsOffset.x).toInt(),
478475
(y + iconsOffset.y).toInt()

chartLib/src/main/kotlin/info/appdev/charting/renderer/BubbleChartRenderer.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import info.appdev.charting.highlight.Highlight
88
import info.appdev.charting.interfaces.dataprovider.BubbleDataProvider
99
import info.appdev.charting.interfaces.datasets.IBubbleDataSet
1010
import info.appdev.charting.utils.PointF
11-
import info.appdev.charting.utils.Utils
1211
import info.appdev.charting.utils.ViewPortHandler
1312
import info.appdev.charting.utils.calcTextHeight
1413
import info.appdev.charting.utils.convertDpToPixel
14+
import info.appdev.charting.utils.drawImage
1515
import kotlin.math.abs
1616
import kotlin.math.max
1717
import kotlin.math.min
@@ -161,8 +161,7 @@ open class BubbleChartRenderer(
161161
val icon = bubbleEntry.icon
162162

163163
icon?.let { ico ->
164-
Utils.drawImage(
165-
canvas,
164+
canvas.drawImage(
166165
ico,
167166
(x + iconsOffset.x).toInt(),
168167
(y + iconsOffset.y).toInt()

chartLib/src/main/kotlin/info/appdev/charting/renderer/CandleStickChartRenderer.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import info.appdev.charting.interfaces.dataprovider.CandleDataProvider
88
import info.appdev.charting.interfaces.datasets.ICandleDataSet
99
import info.appdev.charting.utils.ColorTemplate
1010
import info.appdev.charting.utils.PointF
11-
import info.appdev.charting.utils.Utils
1211
import info.appdev.charting.utils.ViewPortHandler
1312
import info.appdev.charting.utils.convertDpToPixel
13+
import info.appdev.charting.utils.drawImage
1414

1515
open class CandleStickChartRenderer(
1616
var dataProvider: CandleDataProvider, animator: ChartAnimator,
@@ -268,8 +268,7 @@ open class CandleStickChartRenderer(
268268
val icon = entry.icon
269269

270270
icon?.let { ico ->
271-
Utils.drawImage(
272-
canvas,
271+
canvas.drawImage(
273272
ico,
274273
(x + iconsOffset.x).toInt(),
275274
(y + iconsOffset.y).toInt()

chartLib/src/main/kotlin/info/appdev/charting/renderer/HorizontalBarChartRenderer.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import info.appdev.charting.utils.ViewPortHandler
1717
import info.appdev.charting.utils.calcTextHeight
1818
import info.appdev.charting.utils.calcTextWidth
1919
import info.appdev.charting.utils.convertDpToPixel
20+
import info.appdev.charting.utils.drawImage
2021
import kotlin.math.ceil
2122
import kotlin.math.min
2223

@@ -256,8 +257,7 @@ open class HorizontalBarChartRenderer(
256257
py += iconsOffset.y
257258

258259
icon?.let {
259-
Utils.drawImage(
260-
canvas,
260+
canvas.drawImage(
261261
it,
262262
px.toInt(),
263263
py.toInt()
@@ -332,8 +332,7 @@ open class HorizontalBarChartRenderer(
332332
py += iconsOffset.y
333333

334334
icon?.let { myIcon ->
335-
Utils.drawImage(
336-
canvas,
335+
canvas.drawImage(
337336
myIcon,
338337
px.toInt(),
339338
py.toInt()
@@ -417,8 +416,7 @@ open class HorizontalBarChartRenderer(
417416
val icon = it.icon
418417

419418
icon?.let { myIcon ->
420-
Utils.drawImage(
421-
canvas,
419+
canvas.drawImage(
422420
myIcon,
423421
(x + iconsOffset.x).toInt(),
424422
(y + iconsOffset.y).toInt()

chartLib/src/main/kotlin/info/appdev/charting/renderer/LineChartRenderer.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ import info.appdev.charting.interfaces.datasets.ILineDataSet
1616
import info.appdev.charting.utils.ColorTemplate
1717
import info.appdev.charting.utils.PointF
1818
import info.appdev.charting.utils.Transformer
19-
import info.appdev.charting.utils.Utils
2019
import info.appdev.charting.utils.ViewPortHandler
2120
import info.appdev.charting.utils.convertDpToPixel
21+
import info.appdev.charting.utils.drawImage
2222
import java.lang.ref.WeakReference
2323
import kotlin.math.max
2424
import kotlin.math.min
@@ -542,8 +542,7 @@ open class LineChartRenderer(
542542
val icon = entry.icon
543543

544544
icon?.let {
545-
Utils.drawImage(
546-
canvas,
545+
canvas.drawImage(
547546
it,
548547
(x + iconsOffset.x).toInt(),
549548
(y + iconsOffset.y).toInt()

chartLib/src/main/kotlin/info/appdev/charting/renderer/PieChartRenderer.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import info.appdev.charting.utils.Utils
2323
import info.appdev.charting.utils.ViewPortHandler
2424
import info.appdev.charting.utils.calcTextHeight
2525
import info.appdev.charting.utils.convertDpToPixel
26+
import info.appdev.charting.utils.drawImage
2627
import java.lang.ref.WeakReference
2728
import kotlin.math.abs
2829
import kotlin.math.ceil
@@ -571,8 +572,8 @@ open class PieChartRenderer(
571572
y += iconsOffset.x
572573

573574
icon?.let {
574-
Utils.drawImage(
575-
this, it, x.toInt(), y.toInt()
575+
this.drawImage(
576+
it, x.toInt(), y.toInt()
576577
)
577578
}
578579
}

chartLib/src/main/kotlin/info/appdev/charting/renderer/RadarChartRenderer.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import info.appdev.charting.highlight.Highlight
1111
import info.appdev.charting.interfaces.datasets.IRadarDataSet
1212
import info.appdev.charting.utils.ColorTemplate
1313
import info.appdev.charting.utils.PointF
14-
import info.appdev.charting.utils.Utils
1514
import info.appdev.charting.utils.ViewPortHandler
1615
import info.appdev.charting.utils.convertDpToPixel
16+
import info.appdev.charting.utils.drawImage
1717
import info.appdev.charting.utils.getPosition
1818

1919
open class RadarChartRenderer(
@@ -179,8 +179,7 @@ open class RadarChartRenderer(
179179
pIcon.y += iconsOffset.x
180180

181181
icon?.let {
182-
Utils.drawImage(
183-
canvas,
182+
canvas.drawImage(
184183
it,
185184
pIcon.x.toInt(),
186185
pIcon.y.toInt()

chartLib/src/main/kotlin/info/appdev/charting/renderer/ScatterChartRenderer.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import info.appdev.charting.highlight.Highlight
66
import info.appdev.charting.interfaces.dataprovider.ScatterDataProvider
77
import info.appdev.charting.interfaces.datasets.IScatterDataSet
88
import info.appdev.charting.utils.PointF
9-
import info.appdev.charting.utils.Utils
109
import info.appdev.charting.utils.ViewPortHandler
1110
import info.appdev.charting.utils.convertDpToPixel
11+
import info.appdev.charting.utils.drawImage
1212
import timber.log.Timber
1313
import kotlin.math.ceil
1414
import kotlin.math.min
@@ -136,8 +136,7 @@ open class ScatterChartRenderer(var dataProvider: ScatterDataProvider, animator:
136136
val icon = entry.icon
137137

138138
icon?.let {
139-
Utils.drawImage(
140-
canvas,
139+
canvas.drawImage(
141140
it,
142141
(positions[j] + iconsOffset.x).toInt(),
143142
(positions[j + 1] + iconsOffset.y).toInt()

chartLib/src/main/kotlin/info/appdev/charting/utils/CanvasUtils.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.graphics.Paint
55
import android.graphics.Paint.Align
66
import android.graphics.Rect
77
import android.graphics.drawable.Drawable
8+
import info.appdev.charting.utils.PointF.Companion.instance
89
import info.appdev.charting.utils.Utils.FDEG2RAD
910
import kotlin.math.abs
1011
import kotlin.math.cos
@@ -142,3 +143,26 @@ fun getSizeOfRotatedRectangleByRadians(rectangleWidth: Float, rectangleHeight: F
142143
abs(rectangleWidth * sin(radians.toDouble()).toFloat()) + abs(rectangleHeight * cos(radians.toDouble()).toFloat())
143144
)
144145
}
146+
147+
fun Canvas.drawImageX(drawable: Drawable, x: Int, y: Int) {
148+
val width = drawable.intrinsicWidth
149+
val height = drawable.intrinsicHeight
150+
151+
val drawOffset = instance
152+
drawOffset.x = x - (width / 2).toFloat()
153+
drawOffset.y = y - (height / 2).toFloat()
154+
155+
drawable.copyBounds(mDrawableBoundsCache)
156+
drawable.setBounds(
157+
mDrawableBoundsCache.left,
158+
mDrawableBoundsCache.top,
159+
mDrawableBoundsCache.left + width,
160+
mDrawableBoundsCache.top + width
161+
)
162+
163+
val saveId = this.save()
164+
// translate to the correct position and draw
165+
translate(drawOffset.x, drawOffset.y)
166+
drawable.draw(this)
167+
restoreToCount(saveId)
168+
}

chartLib/src/main/kotlin/info/appdev/charting/utils/Utils.kt

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
package info.appdev.charting.utils
22

33
import android.content.Context
4-
import android.graphics.Canvas
5-
import android.graphics.Rect
6-
import android.graphics.drawable.Drawable
74
import android.view.MotionEvent
85
import android.view.VelocityTracker
96
import android.view.ViewConfiguration
107
import info.appdev.charting.formatter.DefaultValueFormatter
118
import info.appdev.charting.formatter.IValueFormatter
12-
import info.appdev.charting.utils.PointF.Companion.instance
139
import kotlin.Int
1410
import kotlin.IntArray
1511
import kotlin.Suppress
@@ -86,31 +82,6 @@ object Utils {
8682
}
8783
}
8884

89-
private val mDrawableBoundsCache = Rect()
90-
91-
fun drawImage(canvas: Canvas, drawable: Drawable, x: Int, y: Int) {
92-
val width = drawable.intrinsicWidth
93-
val height = drawable.intrinsicHeight
94-
95-
val drawOffset = instance
96-
drawOffset.x = x - (width / 2).toFloat()
97-
drawOffset.y = y - (height / 2).toFloat()
98-
99-
drawable.copyBounds(mDrawableBoundsCache)
100-
drawable.setBounds(
101-
mDrawableBoundsCache.left,
102-
mDrawableBoundsCache.top,
103-
mDrawableBoundsCache.left + width,
104-
mDrawableBoundsCache.top + width
105-
)
106-
107-
val saveId = canvas.save()
108-
// translate to the correct position and draw
109-
canvas.translate(drawOffset.x, drawOffset.y)
110-
drawable.draw(canvas)
111-
canvas.restoreToCount(saveId)
112-
}
113-
11485
/**
11586
* Returns a recyclable FSize instance.
11687
* Represents size of a rotated rectangle by degrees.

0 commit comments

Comments
 (0)