Да, создавал. Это полезный способ создавать повторно используемые и специфические компоненты UI, которые нельзя реализовать стандартными представлениями или их комбинацией.
Процесс создания включает:
LinearLayout, FrameLayout и т.д.).attrs для получения атрибутов, заданных в XML.res/values/attrs.xml для объявления настраиваемых атрибутов.
xml
TypedArray.
java
onMeasure(): Определяет размер представления. Здесь рассчитываются ширина и высота на основе View.MeasureSpec и вызывается setMeasuredDimension().onLayout(): Определяет положение дочерних представлений, если это ViewGroup.onDraw(): Выполняет пользовательскую отрисовку на Canvas.onTouchEvent()), управления дочерними представлениями (для ViewGroup).Примеры пользовательских представлений, которые я создавал или видел в проектах:
RecyclerView) с специфической разметкой и поведением.Создание пользовательских представлений требует глубокого понимания процесса отрисовки в Android, работы с Canvas, Paint, Path, а также эффективного использования onMeasure и onLayout для оптимизации производительности.