Alterando fonte padrão de maneira simples no Android
Em outro artigo, vimos como trabalhar com fontes personalizadas em um TextView, alterando nossas classes Java toda vez que fosse necessário. Essa maneira é muito simples, mas caso precisemos alterar em várias partes do projeto, acabamos duplicando muito código.
Uma solução para esse problema, é utilizar uma biblioteca chamada Calligraphy. Com ela, podemos alterar a fonte padrão do aplicativo, e utilizar outras fontes apenas pelo XML.
Então vamos começar importando a biblioteca no nosso arquivo build.gradle do projeto e sincronizar o gradle.
Como já temos nossa fonte importada no projeto, podemos continuar com os códigos. Caso você não tenha a fonte ainda, pode ver como fizemos para adiciona-la a aplicação, clicando aqui.
Como veremos outra maneira de manipular fontes, eu apaguei o código feito no outro artigo, então se rodarmos nosso projeto agora, ele estará da seguinte maneira:
Depois de importar a biblioteca, sincronizar o gradle e com a fonte já adicionada ao projeto, precisamos inicializar a Calligraphy. Para isso, iremos criar uma classe que irá estender de Application. Lá dentro, iremos colocar a configuração necessária para a biblioteca funcionar.
A classe que criamos chama CustomApplication. Como ela estende de Application, ela será chamada apenas quando o processo do nosso aplicativo for iniciado. O método onCreate que estamos sobrescrevendo, é chamado antes da criação de qualquer outro objeto da nossa aplicação. Dentro dele, fazemos a nossa configuração da Calligraphy, definindo a fonte Lobster_Regular como padrão. Avisamos também, que caso usemos outra fonte diferente dessa, ela será passada via XML pelo atributo fontPath.
Mas nossa classe ainda não está funcionando. Precisamos avisar o Android.manifest para utilizar a classe que criamos
Para que a nova fonte seja exibida na tela, precisamos chamar um método na Activity que sobrescreva o contexto base com um Wrapper da biblioteca.
Se rodarmos nosso projeto agora, todos os textos da tela terão a Lobster como fonte padrão dos nossos textos.
Em alguns casos, ainda pode acontecer de definirmos uma fonte nova como padrão, e termos uma segunda fonte para títulos. Usando a Calligraphy, isso fica muito simples de fazer. Basta importar a fonte dos títulos para o projeto, nesse caso iremos utilizar a Pacifico, e adicionar ao título, um atributo no XML .
No TextView que é o nosso título, utilizamos o atributo fontPath com o nome da fonte que queremos definir para ele. Se adicionarmos apenas isso no código, talvez o Android Studio reclame de erro. Para evitar isso, no ViewGroup pai do nosso texto, estamos utilizando o tools:ignore="MissingPrefix". Se rodarmos nosso projeto agora, ele estará da seguinte maneira:
Podemos ainda criar um estilo no arquivo styles.xml apenas para os títulos, e colocar os atributos dele lá, assim como o fontPath para a fonte necessária. Isso facilitaria bastante o desenvolvimento e a manutenção do projeto.
Espero que esse artigo tenha ajudado e por favor, deixe nos comentários qualquer dúvida, sugestão ou crítica :D