Alterando fonte padrão de maneira simples no Android

Kako Botasso
3 min readMar 7, 2017

--

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.

Importando Calligraphy

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:

Nossos textos voltaram a usar a fonte padrão :(

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.

Agora o texto ficou bonitão :D

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:

Apenas o título com fonte diferente

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

--

--