SlideShare uma empresa Scribd logo
FONTS IN XML
FONTES PERSONALIZADAS EM SEU APP ANDROID
CONFIGURAÇÃO E USO
THIENGO.COM.BR
ANTES DAS DEFINIÇÕES
EM XML
TYPEFACE API
- Definição em tempo de execução;
- Folder /assets era o principal local para guardar /
requisitar fontes extras;
- Suporte em 100% dos devices Android no mercado.
FONTS IN XML -
CONFIGURAÇÃO INICIAL
SDK PLATAFORM 26+
- Abra o SDK Manager;
- Clique na aba SDK
Plataforms;
- Dê um check ✔ em Android
8 ou qualquer outra API
superior;
- Clique em Apply ou Ok;
- Reinicie o Android Studio.
FOLDER /FONT
- Clique com o botão direito do
mouse em /res;
- Acesse New;
- Clique em Android resource
directory;
- Em Resource type
selecione font;
- Clique em Ok.
FONTES EXTERNAS
FONTES DE FAMÍLIAS DE FONTES
- Google Fontes - também
recomendada na documentação;
- FontLibrary.org;
- Arquivos aceitos no Android:
- .ttf, .ttc, .otf e .xml;
- O .xml é para família de fontes
que podemos criar no folder /
font.
- Possibilidade de utilizar qualquer
outra fonte de família de fontes,
desde que tenha os tipos aceitos ou
os tipos oferecidos possam ser
convertidos.
BAIXANDO DO GOOGLE FONTS
- Quando no site, Google Fontes,
selecione a fonte;
- Expanda a caixa de fontes
selecionadas;
- Copie a URL do atributo href da tag
<link>;
- Coloque a URL na caixa de endereços
do navegador Web;
- Abra o arquivo CSS e copie a URL
presente no método url() do bloco de
código /* latin */;
- Abra essa nova URL no navegador
para realizar o download da fonte no
formato .woff2.
CONVERTENDO FONTE
- Acesse Every Thing Fonts;
- No menu de topo acesse Font
conversion;
- Em seguida acesse o tipo atual do
formato de fonte. woff conversions, por
exemplo;
- Clique no item que identifique a
conversão. woff2 to ttf, por exemplo;
- Na próxima página:
- Clique em Pick Font File;
- Selecione a fonte a ser convertida;
- Em The EULAs of the font allow
this conversion coloque Yes;
- Clique em Convert.
- Arquivos de fonte fora dos
formatos .ttf, .ttc, .otf e .xml
devem ser convertidos;
INSERINDO FONTES NO PROJETO
- Com o Android Studio aberto,
acesse /res/font;
- Copie e cole, em /font, os
arquivos de fonte que estão nos
formatos aceitáveis na
plataforma;
- Clique no arquivo de fonte duas
vezes para ter o preview dela no
editor de código.
MODO DE USO
EM LAYOUT XML - CÓDIGO
- Atributo fontFamily;
- Para fontes no folder /font,
utilize o @font;
- Para fontes de sistema, como
sans-serif, somente o nome da
família de fontes é necessário.
EM LAYOUT XML - DESIGN SCREEN
- Com o layout XML aberto, selecione a aba
inferior esquerda, Design, do editor de
código;
- Então selecione o TextView ou algum
componente visual que herde dele;
- Na janela a esquerda, Attributes, acesse
fontFamily e selecione a fonte desejada para
o componente.
CRIANDO UMA FAMÍLIA DE FONTES
- Clique com o botão direito do mouse em /
res/font;
- Acesse New;
- Em seguida clique em Font resource file;
- Informe o nome do arquivo, sem caractere
especial, ou traço, ou espaço em branco;
- Clique em Ok;
- O novo arquivo pode ter uma ou mais fontes,
presentes em /font, sendo referenciadas;
- A sintaxe de uso nos layouts XML ou via
código de programação é a mesma do que o
de uma fonte .ttf colocada em /font.
ESTRUTURA DO XML DE FAMÍLIA DE FONTES
- Uma ou mais tags <font> são aceitas;
- Com mais de uma <font> definida, o
sistema é que se encarrega de
escolher a melhor possível para o
contexto;
- O namespace app: é para o suporte a
APIs Android abaixo da 26.
- Atributos:
- font: a referência a alguma
fonte presente no folder /font;
- fontStyle: pode ser italic ou
normal;
- fontWeight: pode variar de
100 a 900, onde os valores
devem ser múltiplos de 100.
400 é equivalente a uma
fonte regular, 700 a uma fonte
em negrito.
- Se a fonte em referência não
oferecer suporte a fontStyle ou
fontWeight, esses são ignorados.
DEFININDO FONTES VIA PROGRAMAÇÃO
- Utilize o resources.getFont() em
Kotlin;
- E o getResources().getFont() em
Java.
DEFININDO A FONTE PADRÃO DO APLICATIVO
- Atualize o arquivo styles.xml
de seu projeto;
- Ainda fará uso do atributo
fontFamily;
DEFININDO FAMÍLIA DE FONTES COM TEXTAPPEARANCE
Alguns componentes que contém
TextView ou uma subclasse desta, podem
ser passíveis de atualização de fonte pelo
atributo textAppearance, se disponível.
Será necessário um novo estilo no
styles.xml:
- Neste arquivo, crie um novo <style>;
- Faça com que o novo estilo herde de
algum TextAppearance;
- Defina ao menos um item com o uso
do atributo fontFamily;
- Referencie o novo estilo em alguma
definição textAppearance de seus
layouts.
API DE SUPORTE - INSTALAÇÃO
- Android Support Library 26;
- Suporte a partir do Android API 14 -
100% dos aparelhos Android no
mercado;
- Garantindo a API de suporte mais atual:
- Abra o SDK Manager;
- Clique na aba SDK Tools;
- Expanda Support Repository;
- Selecione Android Support
Repository, dê um check ✔;
- Clique em Apply ou Ok.
API DE SUPORTE - USO
- Definição no build.gradle de
nível de aplicativo: compile
‘com.android.support:support-
compat:26.0.1’ ou superior;
- Uso do namespace app: em
arquivos de definição de família
de fontes;
- Uso do
ResourcesCompat.getFont() ao
invés do resources.getFont() /
getResources().getFont().
PONTOS E CONCLUSÃO
PONTOS POSITIVOS
- Simples definição de fonte, em visualizações de texto, com o atributo
fontFamily;
- Definição de fonte padrão pelo arquivo de tema do aplicativo, também
utilizando fontFamily;
- API de suporte já disponível e com modificações mínimas em relação a
API oficial.
PONTOS NEGATIVOS
- Não há uma maneira trivial de definir a fonte de itens e subitens do menu
gaveta, digo, uma fonte diferente da definida em styles.xml. Mesmo com o
atributo itemTextAppearance presente em NavigationView, não
conseguimos o acesso individual aos itens, não com este componente sendo
utilizado ao invés de algum framework de lista (RecyclerView, por exemplo);
- Não é possível definir a fonte individual nas tags de <item> de menu;
- As APIs de carregamento externo de fonte, Downloadable Fonts, não
trazem ganhos reais ao projeto, tendo em mente que dependeremos da
qualidade de rede do usuário, dando a possibilidade de "não carregamento”
de fontes necessárias ao design do aplicativo. Acrescente a isso que os
arquivos de família de fontes não ultrapassam poucos KBs, ou seja, nada que
influenciaria consideravelmente o tamanho do APK final.
CONCLUSÃO
Como comentado no conteúdo de Material Design: o controle sobre quais
fontes utilizar em um aplicativo, mesmo definindo a fonte padrão nas
especificações, seria difícil por parte do Google.
Isso, pois muitos apps dependem da família de fontes correta para
completar o design.
A possibilidade de definição de fontes com um simples atributo vem facilitar
em muito está necessidade de fontes extras nos aplicativos Android.
Mas ainda faltam muitas melhorias, por exemplo: componentes que não são
em sua essência de texto, mas que permitem o uso deste, deveriam ter
também a possibilidade de uso do atributo fontFamily. Itens de menu, por
exemplo.
FONTES
Conteúdo completo, em texto e em vídeo, no link a seguir:
- https://www.thiengo.com.br/fontes-em-xml-android-o-configuracao-e-uso;
Fontes:
- https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-
fonts.html;
- https://developers.google.com/fonts/docs/android;
- https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html;
- https://developer.android.com/guide/topics/resources/font-resource.html;
- https://developer.android.com/topic/libraries/support-library/setup.html?hl=pt-
br.
FONTS IN XML
THIENGO.COM.BR
VINÍCIUS THIENGOTHIENGOCALOPSITA@GMAIL.COM

Mais conteúdo relacionado

Mais procurados

Lottie API Para Animações no Android
Lottie API Para Animações no AndroidLottie API Para Animações no Android
Lottie API Para Animações no Android
Vinícius Thiengo
 
SelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView AndroidSelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView Android
Vinícius Thiengo
 
Chips Android, Quando e Como Utilizar
Chips Android, Quando e Como UtilizarChips Android, Quando e Como Utilizar
Chips Android, Quando e Como Utilizar
Vinícius Thiengo
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
Jose Berardo
 
Android: Qual Tecnologia de Desenvolvimento Utilizar?
Android: Qual Tecnologia de Desenvolvimento Utilizar?Android: Qual Tecnologia de Desenvolvimento Utilizar?
Android: Qual Tecnologia de Desenvolvimento Utilizar?
Vinícius Thiengo
 
Live Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android StudioLive Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android Studio
Vinícius Thiengo
 
Android About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreAndroid About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela Sobre
Vinícius Thiengo
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
Jose Berardo
 
PhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de ZoomPhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de Zoom
Vinícius Thiengo
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
HugoDalevedove
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
Marcio Palheta
 
ViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de ArquiteturaViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de Arquitetura
Vinícius Thiengo
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
Rudson Lima
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
Sidney Roberto
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Matheus Calegaro
 
Leitor de Códigos no Android com Barcode Scanner API - ZXing
Leitor de Códigos no Android com Barcode Scanner API - ZXingLeitor de Códigos no Android com Barcode Scanner API - ZXing
Leitor de Códigos no Android com Barcode Scanner API - ZXing
Vinícius Thiengo
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
Wsdevs Desenvolvedores
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
Erisvaldo Junior
 
Android: Avaliação do Pré-projeto Agenda Cultural
Android: Avaliação do Pré-projeto Agenda CulturalAndroid: Avaliação do Pré-projeto Agenda Cultural
Android: Avaliação do Pré-projeto Agenda Cultural
Vinícius Thiengo
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Henrique Perticarati
 

Mais procurados (20)

Lottie API Para Animações no Android
Lottie API Para Animações no AndroidLottie API Para Animações no Android
Lottie API Para Animações no Android
 
SelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView AndroidSelectionTracker Para Seleção de Itens no RecyclerView Android
SelectionTracker Para Seleção de Itens no RecyclerView Android
 
Chips Android, Quando e Como Utilizar
Chips Android, Quando e Como UtilizarChips Android, Quando e Como Utilizar
Chips Android, Quando e Como Utilizar
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Android: Qual Tecnologia de Desenvolvimento Utilizar?
Android: Qual Tecnologia de Desenvolvimento Utilizar?Android: Qual Tecnologia de Desenvolvimento Utilizar?
Android: Qual Tecnologia de Desenvolvimento Utilizar?
 
Live Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android StudioLive Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android Studio
 
Android About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreAndroid About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela Sobre
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
PhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de ZoomPhotoView Android Para a Completa Implementação de Zoom
PhotoView Android Para a Completa Implementação de Zoom
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
ViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de ArquiteturaViewModel Android, Como Utilizar Este Componente de Arquitetura
ViewModel Android, Como Utilizar Este Componente de Arquitetura
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2
 
Leitor de Códigos no Android com Barcode Scanner API - ZXing
Leitor de Códigos no Android com Barcode Scanner API - ZXingLeitor de Códigos no Android com Barcode Scanner API - ZXing
Leitor de Códigos no Android com Barcode Scanner API - ZXing
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Android: Avaliação do Pré-projeto Agenda Cultural
Android: Avaliação do Pré-projeto Agenda CulturalAndroid: Avaliação do Pré-projeto Agenda Cultural
Android: Avaliação do Pré-projeto Agenda Cultural
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 

Semelhante a Fontes em XML, Android O. Configuração e Uso

Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Arlindo Santos
 
Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPress
Breno Alves
 
Feeds
FeedsFeeds
Feeds
guestd16df
 
Apresentação sobre Feeds (com respostas)
Apresentação sobre Feeds (com respostas)Apresentação sobre Feeds (com respostas)
Apresentação sobre Feeds (com respostas)
guestd9017
 
CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2
Cauan Cabral
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4
Fabio Telles Rodriguez
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
BrunoSouza617
 
Assoso 02
Assoso 02Assoso 02
Assoso 02
Marcelle Pereira
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
Milton Rodrigues
 
Assoso 02
Assoso 02Assoso 02
Assoso 02
Marcelha Pereira
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
Francisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
Fer Nando
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
Elisabete Pantoja
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
Fabiano Rodrigues
 
Apresentação blogs
Apresentação blogsApresentação blogs
Apresentação blogs
luizaselis
 
Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1
Jeison Barros
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais características
alinebiath
 
Phalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPhalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações Iniciais
PauloRobertoBolsanel
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
Marcio Marinho
 
Assoso 02(1)
Assoso 02(1)Assoso 02(1)
Assoso 02(1)
Marcelle Pereira
 

Semelhante a Fontes em XML, Android O. Configuração e Uso (20)

Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPress
 
Feeds
FeedsFeeds
Feeds
 
Apresentação sobre Feeds (com respostas)
Apresentação sobre Feeds (com respostas)Apresentação sobre Feeds (com respostas)
Apresentação sobre Feeds (com respostas)
 
CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Assoso 02
Assoso 02Assoso 02
Assoso 02
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Assoso 02
Assoso 02Assoso 02
Assoso 02
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
 
Apresentação blogs
Apresentação blogsApresentação blogs
Apresentação blogs
 
Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais características
 
Phalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPhalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações Iniciais
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Assoso 02(1)
Assoso 02(1)Assoso 02(1)
Assoso 02(1)
 

Mais de Vinícius Thiengo

7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler
7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler
7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler
Vinícius Thiengo
 
5 livros que não são de TI, mas que um desenvolvedor deveria ler
5 livros que não são de TI, mas que um desenvolvedor deveria ler5 livros que não são de TI, mas que um desenvolvedor deveria ler
5 livros que não são de TI, mas que um desenvolvedor deveria ler
Vinícius Thiengo
 
Como Utilizar Métodos Binding Adapter no Android
Como Utilizar Métodos Binding Adapter no AndroidComo Utilizar Métodos Binding Adapter no Android
Como Utilizar Métodos Binding Adapter no Android
Vinícius Thiengo
 
Data Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI AndroidData Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI Android
Vinícius Thiengo
 
Observable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidObservable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI Android
Vinícius Thiengo
 
True Time API Para Data e Horário NTP no Android
True Time API Para Data e Horário NTP no AndroidTrue Time API Para Data e Horário NTP no Android
True Time API Para Data e Horário NTP no Android
Vinícius Thiengo
 
Utilizando Intenções Para Mapas de Alta Qualidade no Android
Utilizando Intenções Para Mapas de Alta Qualidade no AndroidUtilizando Intenções Para Mapas de Alta Qualidade no Android
Utilizando Intenções Para Mapas de Alta Qualidade no Android
Vinícius Thiengo
 
Como Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State APIComo Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State API
Vinícius Thiengo
 
Trabalhando Análise Qualitativa em seu Aplicativo Android
Trabalhando Análise Qualitativa em seu Aplicativo AndroidTrabalhando Análise Qualitativa em seu Aplicativo Android
Trabalhando Análise Qualitativa em seu Aplicativo Android
Vinícius Thiengo
 
Freelancer Android
Freelancer AndroidFreelancer Android
Freelancer Android
Vinícius Thiengo
 
Material Design
Material DesignMaterial Design
Material Design
Vinícius Thiengo
 

Mais de Vinícius Thiengo (11)

7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler
7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler
7 Livros Que Não São de TI, Mas Que Um Programador Deveria Ler
 
5 livros que não são de TI, mas que um desenvolvedor deveria ler
5 livros que não são de TI, mas que um desenvolvedor deveria ler5 livros que não são de TI, mas que um desenvolvedor deveria ler
5 livros que não são de TI, mas que um desenvolvedor deveria ler
 
Como Utilizar Métodos Binding Adapter no Android
Como Utilizar Métodos Binding Adapter no AndroidComo Utilizar Métodos Binding Adapter no Android
Como Utilizar Métodos Binding Adapter no Android
 
Data Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI AndroidData Binding Para Vinculo de Dados na UI Android
Data Binding Para Vinculo de Dados na UI Android
 
Observable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidObservable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI Android
 
True Time API Para Data e Horário NTP no Android
True Time API Para Data e Horário NTP no AndroidTrue Time API Para Data e Horário NTP no Android
True Time API Para Data e Horário NTP no Android
 
Utilizando Intenções Para Mapas de Alta Qualidade no Android
Utilizando Intenções Para Mapas de Alta Qualidade no AndroidUtilizando Intenções Para Mapas de Alta Qualidade no Android
Utilizando Intenções Para Mapas de Alta Qualidade no Android
 
Como Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State APIComo Reter Objetos Utilizando Android-State API
Como Reter Objetos Utilizando Android-State API
 
Trabalhando Análise Qualitativa em seu Aplicativo Android
Trabalhando Análise Qualitativa em seu Aplicativo AndroidTrabalhando Análise Qualitativa em seu Aplicativo Android
Trabalhando Análise Qualitativa em seu Aplicativo Android
 
Freelancer Android
Freelancer AndroidFreelancer Android
Freelancer Android
 
Material Design
Material DesignMaterial Design
Material Design
 

Último

A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptxA perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
marcos oliveira
 
CALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdf
CALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdfCALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdf
CALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdf
CristviaFerreira
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
LuizHenriquedeAlmeid6
 
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdfApostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
pattyhsilva271204
 
Guia referencial de Apoio - Planejamento Escolar 2024.pdf
Guia referencial de Apoio - Planejamento Escolar 2024.pdfGuia referencial de Apoio - Planejamento Escolar 2024.pdf
Guia referencial de Apoio - Planejamento Escolar 2024.pdf
FLAVIOROBERTOGOUVEA
 
Noite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsxNoite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsx
Luzia Gabriele
 
Painel para comemerorar odia dos avós grátis.pdf
Painel  para comemerorar odia dos avós grátis.pdfPainel  para comemerorar odia dos avós grátis.pdf
Painel para comemerorar odia dos avós grátis.pdf
marcos oliveira
 
Licao de adultos Topico 1 CPAD edit.pptx
Licao de adultos Topico 1 CPAD edit.pptxLicao de adultos Topico 1 CPAD edit.pptx
Licao de adultos Topico 1 CPAD edit.pptx
jetroescola
 
Ideais do Ministério jovem Adventista pdf
Ideais do Ministério jovem Adventista pdfIdeais do Ministério jovem Adventista pdf
Ideais do Ministério jovem Adventista pdf
Anesio2
 
Alfabetização de adultos.pdf
Alfabetização de             adultos.pdfAlfabetização de             adultos.pdf
Alfabetização de adultos.pdf
arodatos81
 
Slide para aplicação da AVAL. FLUÊNCIA.pptx
Slide para aplicação  da AVAL. FLUÊNCIA.pptxSlide para aplicação  da AVAL. FLUÊNCIA.pptx
Slide para aplicação da AVAL. FLUÊNCIA.pptx
LeilaVilasboas
 
A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024
Espanhol Online
 
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
antonio carlos
 
Relatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdfRelatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdf
Falcão Brasil
 
NR-12-Treinamento-Maquinas-Rotativas.ppt
NR-12-Treinamento-Maquinas-Rotativas.pptNR-12-Treinamento-Maquinas-Rotativas.ppt
NR-12-Treinamento-Maquinas-Rotativas.ppt
Vanessa F. Rezende
 
Caça - palavras e cruzadinha com dígrafos
Caça - palavras  e cruzadinha   com  dígrafosCaça - palavras  e cruzadinha   com  dígrafos
Caça - palavras e cruzadinha com dígrafos
Mary Alvarenga
 
IV Jornada Nacional Tableau - Apresentações.pptx
IV Jornada Nacional Tableau - Apresentações.pptxIV Jornada Nacional Tableau - Apresentações.pptx
IV Jornada Nacional Tableau - Apresentações.pptx
Ligia Galvão
 
Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24
DirceuSilva26
 
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
marcos oliveira
 

Último (20)

TALENTOS DA NOSSA ESCOLA .
TALENTOS DA NOSSA ESCOLA                .TALENTOS DA NOSSA ESCOLA                .
TALENTOS DA NOSSA ESCOLA .
 
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptxA perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
A perspectiva colaborativa e as novas práticas de inclusão. (1).pptx
 
CALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdf
CALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdfCALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdf
CALENDÁRIO GRADUAÇÃO 2024-07ddddd-04 (1).pdf
 
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
Slides Lição 2, Betel, A Igreja e a relevância, para a adoração verdadeira no...
 
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdfApostila em LIBRAS - Curso Básico ENAP 2019.pdf
Apostila em LIBRAS - Curso Básico ENAP 2019.pdf
 
Guia referencial de Apoio - Planejamento Escolar 2024.pdf
Guia referencial de Apoio - Planejamento Escolar 2024.pdfGuia referencial de Apoio - Planejamento Escolar 2024.pdf
Guia referencial de Apoio - Planejamento Escolar 2024.pdf
 
Noite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsxNoite Alva! José Ernesto Ferraresso.ppsx
Noite Alva! José Ernesto Ferraresso.ppsx
 
Painel para comemerorar odia dos avós grátis.pdf
Painel  para comemerorar odia dos avós grátis.pdfPainel  para comemerorar odia dos avós grátis.pdf
Painel para comemerorar odia dos avós grátis.pdf
 
Licao de adultos Topico 1 CPAD edit.pptx
Licao de adultos Topico 1 CPAD edit.pptxLicao de adultos Topico 1 CPAD edit.pptx
Licao de adultos Topico 1 CPAD edit.pptx
 
Ideais do Ministério jovem Adventista pdf
Ideais do Ministério jovem Adventista pdfIdeais do Ministério jovem Adventista pdf
Ideais do Ministério jovem Adventista pdf
 
Alfabetização de adultos.pdf
Alfabetização de             adultos.pdfAlfabetização de             adultos.pdf
Alfabetização de adultos.pdf
 
Slide para aplicação da AVAL. FLUÊNCIA.pptx
Slide para aplicação  da AVAL. FLUÊNCIA.pptxSlide para aplicação  da AVAL. FLUÊNCIA.pptx
Slide para aplicação da AVAL. FLUÊNCIA.pptx
 
A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024A experiência do professor. Publicado EM 08.07.2024
A experiência do professor. Publicado EM 08.07.2024
 
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1)  educação infantil fu...
1°ao5°ano_HISTÓRIA_ORGANIZADOR CURRICULAR BIMESTRAL (1) educação infantil fu...
 
Relatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdfRelatório de Atividades 2017 CENSIPAM.pdf
Relatório de Atividades 2017 CENSIPAM.pdf
 
NR-12-Treinamento-Maquinas-Rotativas.ppt
NR-12-Treinamento-Maquinas-Rotativas.pptNR-12-Treinamento-Maquinas-Rotativas.ppt
NR-12-Treinamento-Maquinas-Rotativas.ppt
 
Caça - palavras e cruzadinha com dígrafos
Caça - palavras  e cruzadinha   com  dígrafosCaça - palavras  e cruzadinha   com  dígrafos
Caça - palavras e cruzadinha com dígrafos
 
IV Jornada Nacional Tableau - Apresentações.pptx
IV Jornada Nacional Tableau - Apresentações.pptxIV Jornada Nacional Tableau - Apresentações.pptx
IV Jornada Nacional Tableau - Apresentações.pptx
 
Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24Auxiliar Adolescente 2024 3 trimestre 24
Auxiliar Adolescente 2024 3 trimestre 24
 
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
Folha de Atividades (Virei Super-Herói! Projeto de Edição de Fotos) com Grade...
 

Fontes em XML, Android O. Configuração e Uso

  • 1. FONTS IN XML FONTES PERSONALIZADAS EM SEU APP ANDROID CONFIGURAÇÃO E USO THIENGO.COM.BR
  • 3. TYPEFACE API - Definição em tempo de execução; - Folder /assets era o principal local para guardar / requisitar fontes extras; - Suporte em 100% dos devices Android no mercado.
  • 4. FONTS IN XML - CONFIGURAÇÃO INICIAL
  • 5. SDK PLATAFORM 26+ - Abra o SDK Manager; - Clique na aba SDK Plataforms; - Dê um check ✔ em Android 8 ou qualquer outra API superior; - Clique em Apply ou Ok; - Reinicie o Android Studio.
  • 6. FOLDER /FONT - Clique com o botão direito do mouse em /res; - Acesse New; - Clique em Android resource directory; - Em Resource type selecione font; - Clique em Ok.
  • 8. FONTES DE FAMÍLIAS DE FONTES - Google Fontes - também recomendada na documentação; - FontLibrary.org; - Arquivos aceitos no Android: - .ttf, .ttc, .otf e .xml; - O .xml é para família de fontes que podemos criar no folder / font. - Possibilidade de utilizar qualquer outra fonte de família de fontes, desde que tenha os tipos aceitos ou os tipos oferecidos possam ser convertidos.
  • 9. BAIXANDO DO GOOGLE FONTS - Quando no site, Google Fontes, selecione a fonte; - Expanda a caixa de fontes selecionadas; - Copie a URL do atributo href da tag <link>; - Coloque a URL na caixa de endereços do navegador Web; - Abra o arquivo CSS e copie a URL presente no método url() do bloco de código /* latin */; - Abra essa nova URL no navegador para realizar o download da fonte no formato .woff2.
  • 10. CONVERTENDO FONTE - Acesse Every Thing Fonts; - No menu de topo acesse Font conversion; - Em seguida acesse o tipo atual do formato de fonte. woff conversions, por exemplo; - Clique no item que identifique a conversão. woff2 to ttf, por exemplo; - Na próxima página: - Clique em Pick Font File; - Selecione a fonte a ser convertida; - Em The EULAs of the font allow this conversion coloque Yes; - Clique em Convert. - Arquivos de fonte fora dos formatos .ttf, .ttc, .otf e .xml devem ser convertidos;
  • 11. INSERINDO FONTES NO PROJETO - Com o Android Studio aberto, acesse /res/font; - Copie e cole, em /font, os arquivos de fonte que estão nos formatos aceitáveis na plataforma; - Clique no arquivo de fonte duas vezes para ter o preview dela no editor de código.
  • 13. EM LAYOUT XML - CÓDIGO - Atributo fontFamily; - Para fontes no folder /font, utilize o @font; - Para fontes de sistema, como sans-serif, somente o nome da família de fontes é necessário.
  • 14. EM LAYOUT XML - DESIGN SCREEN - Com o layout XML aberto, selecione a aba inferior esquerda, Design, do editor de código; - Então selecione o TextView ou algum componente visual que herde dele; - Na janela a esquerda, Attributes, acesse fontFamily e selecione a fonte desejada para o componente.
  • 15. CRIANDO UMA FAMÍLIA DE FONTES - Clique com o botão direito do mouse em / res/font; - Acesse New; - Em seguida clique em Font resource file; - Informe o nome do arquivo, sem caractere especial, ou traço, ou espaço em branco; - Clique em Ok; - O novo arquivo pode ter uma ou mais fontes, presentes em /font, sendo referenciadas; - A sintaxe de uso nos layouts XML ou via código de programação é a mesma do que o de uma fonte .ttf colocada em /font.
  • 16. ESTRUTURA DO XML DE FAMÍLIA DE FONTES - Uma ou mais tags <font> são aceitas; - Com mais de uma <font> definida, o sistema é que se encarrega de escolher a melhor possível para o contexto; - O namespace app: é para o suporte a APIs Android abaixo da 26. - Atributos: - font: a referência a alguma fonte presente no folder /font; - fontStyle: pode ser italic ou normal; - fontWeight: pode variar de 100 a 900, onde os valores devem ser múltiplos de 100. 400 é equivalente a uma fonte regular, 700 a uma fonte em negrito. - Se a fonte em referência não oferecer suporte a fontStyle ou fontWeight, esses são ignorados.
  • 17. DEFININDO FONTES VIA PROGRAMAÇÃO - Utilize o resources.getFont() em Kotlin; - E o getResources().getFont() em Java.
  • 18. DEFININDO A FONTE PADRÃO DO APLICATIVO - Atualize o arquivo styles.xml de seu projeto; - Ainda fará uso do atributo fontFamily;
  • 19. DEFININDO FAMÍLIA DE FONTES COM TEXTAPPEARANCE Alguns componentes que contém TextView ou uma subclasse desta, podem ser passíveis de atualização de fonte pelo atributo textAppearance, se disponível. Será necessário um novo estilo no styles.xml: - Neste arquivo, crie um novo <style>; - Faça com que o novo estilo herde de algum TextAppearance; - Defina ao menos um item com o uso do atributo fontFamily; - Referencie o novo estilo em alguma definição textAppearance de seus layouts.
  • 20. API DE SUPORTE - INSTALAÇÃO - Android Support Library 26; - Suporte a partir do Android API 14 - 100% dos aparelhos Android no mercado; - Garantindo a API de suporte mais atual: - Abra o SDK Manager; - Clique na aba SDK Tools; - Expanda Support Repository; - Selecione Android Support Repository, dê um check ✔; - Clique em Apply ou Ok.
  • 21. API DE SUPORTE - USO - Definição no build.gradle de nível de aplicativo: compile ‘com.android.support:support- compat:26.0.1’ ou superior; - Uso do namespace app: em arquivos de definição de família de fontes; - Uso do ResourcesCompat.getFont() ao invés do resources.getFont() / getResources().getFont().
  • 23. PONTOS POSITIVOS - Simples definição de fonte, em visualizações de texto, com o atributo fontFamily; - Definição de fonte padrão pelo arquivo de tema do aplicativo, também utilizando fontFamily; - API de suporte já disponível e com modificações mínimas em relação a API oficial.
  • 24. PONTOS NEGATIVOS - Não há uma maneira trivial de definir a fonte de itens e subitens do menu gaveta, digo, uma fonte diferente da definida em styles.xml. Mesmo com o atributo itemTextAppearance presente em NavigationView, não conseguimos o acesso individual aos itens, não com este componente sendo utilizado ao invés de algum framework de lista (RecyclerView, por exemplo); - Não é possível definir a fonte individual nas tags de <item> de menu; - As APIs de carregamento externo de fonte, Downloadable Fonts, não trazem ganhos reais ao projeto, tendo em mente que dependeremos da qualidade de rede do usuário, dando a possibilidade de "não carregamento” de fontes necessárias ao design do aplicativo. Acrescente a isso que os arquivos de família de fontes não ultrapassam poucos KBs, ou seja, nada que influenciaria consideravelmente o tamanho do APK final.
  • 25. CONCLUSÃO Como comentado no conteúdo de Material Design: o controle sobre quais fontes utilizar em um aplicativo, mesmo definindo a fonte padrão nas especificações, seria difícil por parte do Google. Isso, pois muitos apps dependem da família de fontes correta para completar o design. A possibilidade de definição de fontes com um simples atributo vem facilitar em muito está necessidade de fontes extras nos aplicativos Android. Mas ainda faltam muitas melhorias, por exemplo: componentes que não são em sua essência de texto, mas que permitem o uso deste, deveriam ter também a possibilidade de uso do atributo fontFamily. Itens de menu, por exemplo.
  • 26. FONTES Conteúdo completo, em texto e em vídeo, no link a seguir: - https://www.thiengo.com.br/fontes-em-xml-android-o-configuracao-e-uso; Fontes: - https://developer.android.com/guide/topics/ui/look-and-feel/downloadable- fonts.html; - https://developers.google.com/fonts/docs/android; - https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html; - https://developer.android.com/guide/topics/resources/font-resource.html; - https://developer.android.com/topic/libraries/support-library/setup.html?hl=pt- br.
  • 27. FONTS IN XML THIENGO.COM.BR VINÍCIUS THIENGOTHIENGOCALOPSITA@GMAIL.COM