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)?

questionAnswers(2)

yourAnswerToTheQuestion