Что такое Custom View

«Что такое Custom View» — вопрос из категории UI и Views, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Custom View — это пользовательский компонент интерфейса, созданный разработчиком для отображения уникального UI, который невозможно реализовать стандартными виджетами.

Основные моменты:

  • Наследуется от View или его подклассов (ImageView, Button и т. д.).
  • Переопределяются методы жизненного цикла: onMeasure(), onLayout(), onDraw().
  • Можно добавлять кастомные атрибуты через XML с помощью declare-styleable.

Пример:

class CircleView(context: Context, attrs: AttributeSet) : View(context, attrs) {  
    private val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {  
        color = Color.RED  
    }  

    override fun onDraw(canvas: Canvas) {  
        super.onDraw(canvas)  
        canvas.drawCircle(width / 2f, height / 2f, 100f, paint)  
    }  
}  

Использование в XML:

<com.example.app.CircleView  
    android:layout_width="200dp"  
    android:layout_height="200dp" />