Вы, должно быть, заметили, что все узлы , которые мы указываем в XML-макетах, на самом деле либо являются классами View (например, для TextView, EditView), либо для просмотра контейнеров / менеджеров макетов (например, LinearLayout, RelativeLayout и т. Д. .). Android позволяет создавать собственные представления и контейнеры, расширяя класс View и один из менеджеров макета соответственно. Затем вы можете выбрать для надувания такие представления непосредственно из кода или указать их как узлы в XML-разметке.
Например, при условии, что вы создаете класс View, такой как:
public class com.views.MyView extends View{}
тогда вы можете включить этот класс непосредственно в XML-макет, сказав:
<LinearLayout ..>
<com.views.MyView .. />
</LinearLayout>
Обратите внимание, что при указании класса View непосредственно в XML необходимо учитывать несколько важных тонкостей, таких как:
При накачке пользовательского представления фреймворк будет вызывать другой конструктор представления. Аргументами будут объект контекста и AttributeSet (содержащий атрибуты, которые вы задаете в XML).
Для более подробной информации см это