Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Suporte múltiplas telas no Android

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for GDG Aracaju GDG Aracaju
February 28, 2015

Suporte múltiplas telas no Android

Talk by @italomss
Watch it https://www.youtube.com/watch?v=EwqC13BBRQU

Avatar for GDG Aracaju

GDG Aracaju

February 28, 2015
Tweet

More Decks by GDG Aracaju

Other Decks in Programming

Transcript

  1. 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.
  2. 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.
  3. 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.
  4. 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).
  5. 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:
  6. 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.
  7. 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/
  8. 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
  9. 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