Создание кастомной View в Android
Чтобы создать кастомную View, необходимо проделать следующие шаги
- Создать класс, который будет наследовать View или же наследника View.
- Переопределить конструкторы
Всего есть 4 конструктора, каждый из них используется для своих целей. Чтобы начать пользоваться кастомной View, необходимо переопределить только один, но в таком случае вы ограничиваете вариант создания View только до одного. Вот конструкторы и их использование:
- constructor(context: Context)
Используется, чтобы создать View через Котлин.
- constructor(context: Context, attrs: AttributeSet)
Используется, чтобы создать View через XML
- constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int)
Используется, чтобы создать View через XML c дефолтным атрибутом style
- constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int)
Используется, чтобы создать View через XML c дефолтным атрибутом style и/или дефолтным ресурсом style
- Переопределить on… методы.
Тут уже зависит от того, насколько новую View вы хотите создать. Возможно, хватит только переопределения onDraw(), а возможно придется переопределять и остальные методы тоже. Например, если необходимо создать квадратный LinearLayout, хватит только переопределения onMeasure().
Это только базовый набор, если необходимо создать полностью новую View возможно придется создать свои собственные event listener’ы, средства доступа к свойствам, модификаторы и так далее
Портфолио из реальных проектов
AI Sprints — обучение профессиям с ИИ
Создавайте проекты с первых недель. Telegram-бот, Android-приложение, Backend API — всё на GitHub с тестами и CI/CD
- Проекты на GitHub: каждый трек даёт 3–5 работ для портфолио — показываете на собесах
- Код-ревью менторов: учитесь писать чисто и правильно — код не стыдно показать
- Production-качество: тесты, CI/CD, документация — как в продуктовых командах
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе