Ответ
Работал с Canvas для кастомной отрисовки UI. Основные задачи: создание сложных анимаций, кастомных графиков и элементов интерфейса.
Пример:
class CustomView(context: Context) : View(context) {
private val paint = Paint().apply {
color = Color.RED
style = Paint.Style.FILL
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
canvas.drawCircle(width / 2f, height / 2f, 100f, paint)
}
}
Оптимизировал отрисовку через clipRect(), save()/restore() и invalidate() с учетом dirty rect. Работал с Path, Matrix для трансформаций.