Share
Embed
Suporte múltiplas telas no Android
Talk by @italomss
Watch it https://www.youtube.com/watch?v=EwqC13BBRQU
GDG Aracaju
February 28, 2015
Transcript
16 slides
-
Suporte múltiplas Telas Boas práticas para sua app rodar em
mais dispositivos -
Hello World • Italo Marcel [email protected] @italo_MSS • Getinfo Coordenador
de Desenvolvimento Cursos -
Intro • O Android pode rodar em uma grande variedade
de dispositivos que podem ter diferentes tamanhos e densidades de tela; • Vantagens e desvantagens; • Ferramentas do SDK; • Tamanhos das telas; • Dispositivos xing-ling. -
Termos e conceitos • Screen size ◦ Tamanho atual da
tela, medida pela diagonal. Para simplificar, o Android agrupa todos os tamanhos de tela em quatro tamanhos gerais: small, normal, large, and extra large. • Screen density ◦ A quantidade de pixels dentro de uma área física da tela; normalmente é referenciada pela unidade dpi (dots per inch). Por exemplo, uma densidade de tela baixa possui poucos pixels em uma área física, comparada a uma densidade normal ou alta. Para simplificar, o Android agrupa todas as densidades em quatro densidades gerais: low, medium, high, and extra high. • Orientation ◦ A orientação da tela do ponto de vista do usuário. Pode ser retrato ou paisagem, o que significa que o aspecto será vertical ou horizontal. -
Termos e conceitos • Resolution ◦ O número total de
pixels físicos da tela. Quando adicionar suporte a múltiplas telas, as aplicações não trabalham diretamente com a resolução; • Density-independent pixel (dp) ◦ Uma unidade virtual de pixel que você deveria usar quando definir um layout, para expressar dimensão e posição de forma indenpendente da densidade. ◦ A conversão de uma unidade dp para pixel é simples: px = dp * (dpi / 160). Por exemplo, em uma tela de 240 dpi, 1 dp é igual a 1.5 pixels físicos. -
Faixa de telas suportadas • O Android fornece suporte para
múltiplos tamanhos e densidades de tela, que refletem as diversas configurações de tela que os dispositivos podem ter. • Para simplificar a maneira de desenhar suas interfaces para múltiplas telas, o Android divide a faixa de tamanhos e densidades de tela em: ◦ Um conjunto de quatro tamanhos gerais: small, normal, large, andxlarge. ◦ Um conjunto de densidades gerais: ldpi (baixa), mdpi (média), hdpi (alta), and xhdpi (extra alta) • Os tamanhos e densidades gerais são arranjadas em torno de um configuração base que é tamanho normal e densidade mdpi (média). -
Independência de densidade • Sua aplicação alcança “independência de densidade”
quando preserva o tamanho físico (do ponto de vista do usuário) dos elementos da interface quando exibidos em telas de densidades diferentes. • Vejamos a seguir dois testes com imagem e botão: -
Como suportar múltiplas telas • Explicitamente declarar no manifesto quais
tamanhos de tela sua aplicação suporta ◦ <supports-screens> • Forneça layouts diferentes para tamanhos de tela diferentes ◦ layout-xlarge/ layout-sw600dp/ • Forneça bitmaps diferentes para telas de densidade diferentes ◦ Por padrão, o Android escala os bitmaps (arquivos .png, .jpg, and.gif) e desenhos Nine-Patch (arquivos .9.png) de modo que eles sejam renderizados para o tamanho físico adequado para cada dispositivo. -
Como suportar múltiplas telas • O sistema usa recursos alternativos
adequados ◦ Dependendo das alternativas de recursos disponiveis, um diretório com o qualificador hdpi (como drawable-hdpi/) pode ser a melhor escolha, assim o sistema usa os desenhos desse diretório. • Se nenhum recurso adequado for encontrado, o sistema usa os recursos padrão e estica-os ou comprime-os como for necessário para caber no tamanho da tela ◦ drawable/ -
Como suportar múltiplas telas res/layout/my_layout.xml // layout for normal screen
size ("default") res/layout-small/my_layout.xml // layout for small screen size res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra large screen size res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation res/drawable-mdpi/my_icon.png // bitmap for medium density res/drawable-hdpi/my_icon.png // bitmap for high density res/drawable-xhdpi/my_icon.png // bitmap for extra high density -
Boas práticas • Quando definir android:layout_width e android:layout_height para as
views no arquivo XML do layout, use "wrap_content", "fill_parent" ou unidades dp para garantir que a view receba um tamanho apropriado na tela do dispositivo atual. • Não use valores fixos de pixel no código de sua aplicação • Use os recursos especificos de tamanho e densidade • Utilize o 9 patch