Declarando atributos estilizados no Android
Há pouca documentação preciosa sobre odeclare-styleable
pela qual podemos declarar estilos personalizados para componentes. Eu encontreiesta list de valores válidos para oformat
atributo doattr
tag. Embora isso seja legal, não explica como usar alguns desses valores. Procurando attr.xml (a fonte do Android para os atributos padrão), descobri que você pode fazer coisas como:
<!-- The most prominent text color. -->
<attr name="textColorPrimary" format="reference|color" />
Oformat
atributo @ pode evidentemente ser definido como uma combinação de valores. Presumivelmente, oformat
atributo @ ajuda o analisador a interpretar um valor de estilo real. Então eu descobri isso no attr.xml:
<!-- Default text typeface. -->
<attr name="typeface">
<enum name="normal" value="0" />
<enum name="sans" value="1" />
<enum name="serif" value="2" />
<enum name="monospace" value="3" />
</attr>
<!-- Default text typeface style. -->
<attr name="textStyle">
<flag name="normal" value="0" />
<flag name="bold" value="1" />
<flag name="italic" value="2" />
</attr>
Ambos parecem declarar um conjunto de valores permitidos para o estilo indicad
Então eu tenho duas perguntas:
Qual é a diferença entre um atributo de estilo que pode assumir um de um conjunto deenum
valores e um que pode assumir um conjunto deflag
valores? Alguém conhece alguma documentação melhor sobre comodeclare-styleable
funciona (exceto a engenharia reversa do código fonte do Android)?