Как создать кастомные атрибуты view?

Для view можно создать кастомные атрибуты и использовать их в xml при верстке лэйаута.
Для начала кастомные атрибуты определяются в ресурсах элементом <declare-styleable>. Обычно для хранения атрибутов создается файл res/values/attrs.xml.

<declare-styleable name="ValidatableInput">
<attr name="label" />
<attr name="errorColor" format="color" />
</declare-styleable>


В примере выше заданы два кастомных атрибута label и errorColor. Имя элемента стиля ValidatableInput по конвенции соответствует имени кастомной view в котором этот стиль используется, но это не обязательное условие.

После этого можно использовать созданные атрибуты в xml лэйаута. Атрибуты принадлежат кастомному неймспейсу http://schemas.android.com/apk/res/[your package name], который импортируется параметром xmlns в корневом лэйауте.

<LinearLayout 
xmlns:custom="http://schemas.android.com/apk/res/it.sobes">

<ru.itsobes.ValidatableInput
custom:label="Wrong Input"
custom:errorColor="@color/red" />
</LinearLayout>