Junior — Middle
Ar galite pateikti savo sukurto vartotojo sąsajos komponentų pavyzdžių, kurie buvo sukurti kaip pritaikyti vaizdai?
sobes.tech AI
Atsakymas iš 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)
}
}