SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 AndroidViní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 AndroidVinícius Thiengo
 
Chips Android, Quando e Como Utilizar
Chips Android, Quando e Como UtilizarChips Android, Quando e Como Utilizar
Chips Android, Quando e Como UtilizarVinícius Thiengo
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3Jose 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 StudioViní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 SobreVinícius Thiengo
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose 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 ZoomVinícius Thiengo
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
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 HelloWorldMarcio 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 ArquiteturaViní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 AndroidSidney 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/2Matheus 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 - ZXingViní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 AndroidWsdevs Desenvolvedores
 
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 CulturalViní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 iPhoneHenrique Perticarati
 

Tendances (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
 

Similaire à 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 PHPArlindo Santos
 
Traduções no WordPress
Traduções no WordPressTraduções no WordPress
Traduções no WordPressBreno Alves
 
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®, v2Cauan 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.4Fabio 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
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_frameworkMilton Rodrigues
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetosFer Nando
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetosFabiano Rodrigues
 
Apresentação blogs
Apresentação blogsApresentação blogs
Apresentação blogsluizaselis
 
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 1Jeison Barros
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais característicasalinebiath
 
Phalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPhalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPauloRobertoBolsanel
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 

Similaire à 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)
 

Plus 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 LerViní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 lerViní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 AndroidViní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 AndroidViní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 AndroidViní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 AndroidViní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 AndroidViní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 APIViní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 AndroidVinícius Thiengo
 

Plus 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
 

Dernier

PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxLeonardoGabriel65
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeitotatianehilda
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAssuser2ad38b
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxMARIADEFATIMASILVADE
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 

Dernier (20)

PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 

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