work - support different pixel densities android




Como definir dimens.xml para cada tamanho de tela diferente no android? (6)

Use DP escalonável

Embora fazer um layout diferente para diferentes tamanhos de tela seja teoricamente uma boa ideia, pode ser muito difícil acomodar todas as dimensões da tela e as densidades de pixels. Ter mais de 20 arquivos diferentes de dimens.xml conforme sugerido nas respostas acima, não é fácil de gerenciar.

Como usar:

Para usar o sdp :

  1. Inclua a implementation 'com.intuit.sdp:sdp-android:1.0.5' no seu build.gradle ,
  2. Substitua qualquer valor de dp , como 50dp com @dimen/50_sdp forma:

    <TextView
     android:layout_width="@dimen/_50sdp"
     android:layout_height="@dimen/_50sdp"
     android:text="Hello World!" />

Como funciona:

sdp escala com o tamanho da tela porque é essencialmente uma lista enorme de diferentes dimens.xml para cada valor de dp possível.

Veja em ação:

Aqui está em três dispositivos com dimensões de tela e densidades muito diferentes:

Observe que o cálculo da unidade de tamanho de sdp inclui alguma aproximação devido a algumas restrições de desempenho e usabilidade.

Ao suportar diferentes tamanhos de tela (densidades) no Android, muitas vezes o foco está na criação de layouts diferentes para todas as telas possíveis. IE

  • ldpi
  • mdpi
  • hdpi
  • xhdpi
  • xxhdpi
  • xxxhdpi

Eu projetei um layout para uma tela xhdpi como referência e defini suas dimensões em dimens.xml . Agora eu quero dar suporte a cada tamanho de tela possível. Como eu posso fazer isso?

Tanto quanto eu sei, eu posso usar this ferramenta para descobrir o dimens.xml adequado para outros tamanhos de tela e adicioná-lo ao meu projeto. Este é o caminho certo para fazer isso na minha situação?

Outra questão, eu só preciso criar dimens.xml para as dimensões da tela acima? Se sim, então o que é w820dp ?

Obrigado pela ajuda. Eu preciso suportar apenas telefones (não tablets ou outros dispositivos).


Caso queira ver mais: aqui está um link para uma lista de dispositivos (tablet, celular, relógios), incluindo watch , chromebook , windows e mac . Aqui você pode encontrar a densidade, dimensões e etc. Baseando-se aqui, é um bom recurso se você também usa um emulador.

Se você clicar em um item específico, ele mostrará mais detalhes no lado direito.

Já que é Android , vou postar relacionado a ele.

~ É melhor se você salvar uma cópia da web. Para visualizá-lo offline.


Existem bibliotecas legais que lidam com tudo e reduzem sua dor. Para usá-lo, basta adicionar duas dependências no gradle:

 implementation 'com.intuit.ssp:ssp-android:1.0.5'
 implementation 'com.intuit.sdp:sdp-android:1.0.5'

Depois disso, use dimens assim:

        android:layout_marginTop="@dimen/_80sdp"

O Android 3.2 introduz uma nova abordagem para tamanhos de tela, os números que descrevem o tamanho da tela são todos em unidades "dp".

menor largura dp: a menor largura disponível para layout de aplicação em unidades “dp”; essa é a menor largura de dp que você encontrará em qualquer rotação da tela.

Para criar um clique com o botão direito no diretório de recursos do Android >>> new >>>

A partir da janela Qualificadores Disponíveis , mova a menor largura de tela para os qualificadores escolhidos

Na janela Largura da tela , basta escrever o valor "dp" começando de você gostaria que o Android Studio usasse essa dimensão.

Do que mudar para a visualização Project , clique com o botão direito do mouse no novo diretório de recursos criado

novo >>> Arquivo de recursos de valores insira um novo nome de arquivo dimens.xml e pronto.


Você pode colocar o dimens.xml em

1) valores

2) valores-hdpi

3) valores-xhdpi

4) valores-xxhdpi

E dê tamanhos diferentes em dimens.xml dentro das pastas correspondentes de acordo com as densidades.


Você tem que criar uma pasta de valores diferentes para telas diferentes . Gostar

values-sw720dp          10.1 tablet 1280x800 mdpi

values-sw600dp          7.0  tablet 1024x600 mdpi

values-sw480dp          5.4  480x854 mdpi 
values-sw480dp          5.1  480x800 mdpi 

values-xxhdpi           5.5"  1080x1920 xxhdpi
values-xxxhdpi           5.5" 1440x2560 xxxhdpi

values-xhdpi            4.7   1280x720 xhdpi 
values-xhdpi            4.65  720x1280 xhdpi 

values-hdpi             4.0 480x800 hdpi
values-hdpi             3.7 480x854 hdpi

values-mdpi             3.2 320x480 mdpi

values-ldpi             3.4 240x432 ldpi
values-ldpi             3.3 240x400 ldpi
values-ldpi             2.7 240x320 ldpi

Para mais informações você pode visitar aqui

Pastas de valores diferentes no android

http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html

Editado por @humblerookie

Você pode usar o plug-in do Android Studio chamado Dimenify para gerar automaticamente valores de dimensão para outros intervalos de pixels com base em fatores de escala personalizados. Ainda está na versão beta, certifique-se de notificar quaisquer problemas / sugestões que você encontrar para o desenvolvedor.







android-screen-support