예를들면 Canvas는 선을 그리면, Paint는 그 선이 어떠한 색으로 결정 될지 나타내는 것이다.
private fun drawImage(canvas: Canvas?, image: Image?, flag: Boolean = false) {
paint.reset()
if (flag) {
paint.alpha = DRAG_ALPHA
} else {
paint.alpha = image?.alpha ?: 0
}
image?.source?.let { sc ->
canvas?.drawBitmap(sc, image.point.x.toFloat(), image.point.y.toFloat(), paint)
}
}
paint의 alpha 값의 범위는 (0~255) 이다.
이 범위에서 벗어나면 무조건 0이 되어버린다.
onDraw() 메소드는 다음과 같은 기능이 있다
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
canvas.apply {
// Draw the shadow
drawOval(shadowBounds, shadowPaint)
// Draw the label text
drawText(data[mCurrentItem].mLabel, textX, textY, textPaint)
// Draw the pie slices
data.forEach {
piePaint.shader = it.mShader
drawArc(bounds,
360 - it.endAngle,
it.endAngle - it.startAngle,
true, piePaint)
}
// Draw the pointer
drawLine(textX, pointerY, pointerX, pointerY, textPaint)
drawCircle(pointerX, pointerY, pointerSize, mTextPaint)
}
}