View – это класс, представляющий блок UI. View является базовым классом для UI-виджетов, таких как кнопки, текстовые поля, поля ввода. Также View – это родитель класса ViewGroup, базового для всех лэйаутов.

Иногда готовых классов-наследников View недостаточно и требуется создать кастомную View. В общем случае для этого нужно сделать следующее:

1. Наследоваться от View или класса-наследника View (например Button);
2. Переопределить конструкторы класса View. Конструкторы используются системой при создании View, описанной в xml-лэйауте, поэтому конструкторы необходимо переопределить, даже если они не вызываются явно;
3. Создать новые или переопределить существующие методы-листенеры ивентов, такие как onTouchEvent();
4. Переопределить методы onDraw() и onMeasure();
5. Переопределить другие on… методы, если потребуется.

Этот список действий не является обязательным, а лишь показывает, что требуется выполнить наиболее часто.