Na resposta a esta pergunta, o usuário lista valores para android:fontFamily
e 12 variantes (veja abaixo). De onde vêm esses valores? A documentação para android:fontFamily
não lista essas informações em nenhum lugar (verifiquei aqui e aqui ). As strings estão listadas no arquivo styles.xml do Android em vários lugares, mas como elas são mapeadas de volta para a fonte Roboto?
No Android 4.1 / 4.2, as seguintes famílias de fontes Roboto estão disponíveis:
android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-light" // roboto light android:fontFamily="sans-serif-condensed" // roboto condensed android:fontFamily="sans-serif-thin" // roboto thin (android 4.2) android:fontFamily="sans-serif-medium" // roboto medium (android 5.0)
em combinação com isso
android:textStyle="normal|bold|italic"
São possíveis 12 variantes:
- Regular
- itálico
- Negrito
- Negrito itálico
- Luz
- Itálico claro
- Fino
- Itálico fino
- Condensado regular
- Itálico condensado
- Condensado em negrito
- Condensado em negrito-itálico
No styles.xml
arquivo do aplicativo, estou trabalhando em alguém listado como família de fontes e tenho certeza de que está errado:
<item name="android:fontFamily">Roboto-Regular.ttf</item>
Gostaria de configurar o tema para o nosso aplicativo corretamente (que inclui o uso correto do fontFamily) e remover toda a redundância existente em alguns dos estilos criados antes de eu dar uma olhada no arquivo.
Fontes disponíveis (a partir do Oreo)
A página Tipografia de design de material tem demos para algumas dessas fontes e sugestões sobre como escolher fontes e estilos.
Para detetives do código:
fonts.xml
é a lista definitiva e em constante expansão de fontes do Android.Usando essas fontes
Defina os atributos
android:fontFamily
eandroid:textStyle
, por exemplopara os valores desejados desta tabela:
(Noto Sans é uma fonte alternativa; você não pode especificá-la diretamente)
Nota: esta tabela é derivada de
fonts.xml
. O nome da família e o estilo de cada fonte estão listados em fonts.xml, por exemploserif-monospace
é, portanto, a família da fonte enormal
é o estilo.Compatibilidade
Com base no log de fonts.xml e no antigo system_fonts.xml , é possível ver quando cada fonte foi adicionada:
fonte
Tanto quanto sei, você não pode declarar fontes personalizadas em xml ou temas. Normalmente, apenas faço aulas personalizadas estendendo o textview que definem sua própria fonte na instanciação e as utilizo nos meus arquivos XML de layout.
ou seja:
e
fonte