Назад к вопросам
Junior — Middle
67
Можете привести примеры собственных компонентов интерфейса, которые вы создавали в виде кастомных View?
Компании, где спрашивали
NetUP
Ответ от нейросети
sobes.tech AI
Примером собственного компонента интерфейса на базе кастомного View может быть:
- Кастомный индикатор прогресса с уникальной анимацией и стилем, который не поддерживается стандартным ProgressBar.
- Виджет для отображения рейтинга в виде звездочек с возможностью выбора и кастомной отрисовкой.
- Кастомный круговой график с анимацией заполнения, где рисуется на Canvas.
Пример простого кастомного View, рисующего круг с текстом:
class CircleTextView(context: Context, attrs: AttributeSet?) : View(context, attrs) {
private val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
color = Color.BLUE
style = Paint.Style.FILL
}
private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
color = Color.WHITE
textSize = 50f
textAlign = Paint.Align.CENTER
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val radius = width.coerceAtMost(height) / 2f
canvas.drawCircle(width / 2f, height / 2f, radius, paint)
canvas.drawText("Hi", width / 2f, height / 2f + textPaint.textSize / 3, textPaint)
}
}