Ao oferecer suporte a diferentes tamanhos de tela (densidades) no Android, o foco é criar layouts diferentes para todas as telas possíveis. IE
- ldpi
- mdpi
- hdpi
- xhdpi
- xxhdpi
- xxxhdpi
Projetei um layout para uma tela xhdpi como referência e defini suas dimensões em dimens.xml . Agora , quero apoiá-lo em todos os tamanhos de tela possíveis. Como eu posso fazer isso?
Tanto quanto sei, posso usar essa ferramenta para descobrir o dimens.xml adequado para outros tamanhos de tela e adicioná-lo ao meu projeto. É o caminho certo para fazer isso na minha situação?
Outra pergunta: preciso criar dimens.xml apenas para as dimensões de tela acima? Se sim, então o que é w820dp
?
Obrigado pela ajuda. Eu preciso suportar apenas telefones (não tablets ou outros dispositivos).
dimesn.xml
arquivos diferentes para diferentes resoluções.W820dp
isso suportando uma versão diferente do Android? Além disso, você pode me sugerir algum tutorial sobre suporte a telas diferentes com base no dimens.xml?Respostas:
Você precisa criar uma pasta de valores diferentes para telas diferentes . Gostar
Para mais informações você pode visitar aqui
Editado por @humblerookie
Você pode usar o plug-in do Android Studio chamado Dimenify para gerar automaticamente valores de dimensão para outros buckets de pixels com base em fatores de escala personalizados. Ainda está na versão beta, notifique quaisquer problemas / sugestões que você encontrar para o desenvolvedor.
fonte
Usar DP escalável
Embora criar um layout diferente para diferentes tamanhos de tela seja uma boa ideia, pode ser muito difícil acomodar todas as dimensões da tela e densidades de pixel. Ter mais de 20
dimens.xml
arquivos diferentes, conforme sugerido nas respostas acima, não é fácil de gerenciar.Como usar:
Para usar
sdp
:implementation 'com.intuit.sdp:sdp-android:1.0.5'
no seubuild.gradle
,Substitua qualquer
dp
valor, como50dp
por um exemplo@dimen/50_sdp
:Como funciona:
sdp
escala com o tamanho da tela porque é essencialmente uma lista enorme de diferentesdimens.xml
para cadadp
valor possível .Veja em ação:
Aqui está em três dispositivos com dimensões e densidades de tela bastante diferentes:
Observe que o
sdp
cálculo da unidade de tamanho inclui alguma aproximação devido a algumas restrições de desempenho e usabilidade.fonte
queremos ver as alterações no tamanho de visualização necessário em diferentes telas.
Precisamos criar pastas de valores diferentes para telas diferentes e colocar o arquivo dimens.xml com base na densidade da tela.
Peguei um TextView e observei as alterações quando alterei o dimens.xml em pastas de valores diferentes.
Por favor, siga o processo
normal - xhdpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o normal - xhdpi \ dimens.xml
nexus 5X (5,2 "* 1080 * 1920: 420 dpi)
nexo 6P (5,7 "* 1440 * 2560: 560 dpi)
nexus 6 (6,0 "* 1440 * 2560: 560 dpi)
nexus 5 (5,0 ", 1080 1920: xxhdpi)
nexus 4 (4,7 ", 768 * 1280: xhdpi)
Galaxy Nexus (4,7 ", 720 * 1280: xhdpi)
4,65 "720p (720 * 1280: xhdpi)
4.7 "WXGA (1280 * 720: Xhdpi)
Xlarge - xhdpi \ dimens.xml
Os dispositivos abaixo podem alterar o tamanho das telas quando alteramos o Xlarge - xhdpi \ dimens.xml
nexo 9 (8,9 ", 2048 * 1556: xhdpi)
nexo 10 (10,1 ", 2560 * 1600: xhdpi)
grande - xhdpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o tamanho grande - xhdpi \ dimens.xml
nexo 7 (7,0 ", 1200 * 1920: xhdpi)
nexo 7 (2012) (7,0 ", 800 * 1280: tvdpi)
As telas abaixo estão visíveis em "Pesquisar telefones e tablets genéricos"
grande - mdpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o tamanho grande - mdpi \ dimens.xml
5.1 "WVGA (480 * 800: mdpi)
5.4 "FWVGA (480 * 854: mdpi)
7.0 "WSVGA (Tablet) (1024 * 600: mdpi)
normal - hdpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o normal - hdpi \ dimens.xml
nexus s (4,0 ", 480 * 800: hdpi)
nexo um (3,7 ", 480 * 800: hdpi)
pequeno - ldpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o tamanho pequeno - ldpi \ dimens.xml
Controle deslizante QVGA de 2,7 "(240 * 320: ldpi)
2,7 "QVGA (240 * 320: ldpi)
xlarge - mdpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o xlarge - mdpi \ dimens.xml
WXGA de 10,1 "(tátil) (1280 * 800: MDPI)
normal - ldpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o normal - ldpi \ dimens.xml
3.3 "WQVGA (240 * 400: LDPI)
WQVGA de 3,4 "(240 * 432: LDPI)
normal - hdpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o normal - hdpi \ dimens.xml
4.0 "WVGA (480 * 800: hdpi)
3.7 "WVGA (480 * 800: hdpi)
Controle deslizante FWVGA de 3,7 "(480 * 854: hdpi)
normal - mdpi \ dimens.xml
Os dispositivos abaixo podem alterar os tamanhos das telas quando alteramos o normal - mdpi \ dimens.xml
Slider HVGA de 3,2 "(ADP1) (320 * 480: MDPI)
QVGA de 3,2 "(ADP2) (320 * 480: MDPI)
fonte
values-normal-xhdpi
?Existem boas bibliotecas que cuidam de tudo e reduzem sua dor. Para usá-lo, basta adicionar duas dependências no gradle:
Depois disso, use
dimens
assim:fonte
Fiz upload de um programa java simples que leva a localização do projeto e o arquivo de dimensão que você deseja como entrada. Com base nisso, ele produziria o arquivo de dimensão correspondente no console. Aqui está o link para ele:
https://github.com/akeshwar/Dimens-for-different-screens-in-Android/blob/master/Main.java
Aqui está o código completo da referência:
fonte
Você precisa criar uma
values
pasta diferente para telas diferentes e colocar odimens.xml
arquivo de acordo com a densidade.fonte
ldpi
,mdpi
maneiravalues-xxhdpi
Nexus 6?320x480
é um mdpi típico . Então, coloque-o emvalues
ou dentro devalues-mdpi
Você pode colocar
dimens.xml
em1) valores
2) valores-hdpi
3) valores-xhdpi
4) valores-xxhdpi
E forneça tamanhos diferentes nas
dimens.xml
pastas correspondentes, de acordo com a densidade.fonte
No caso de você querer ver mais: Aqui está uma ligação para uma lista de dispositivos (tablets, celulares, relógios), incluindo
watch
,chromebook
,windows
emac
. Aqui você pode encontrar a densidade, as dimensões e etc. Apenas com base aqui, é um bom recurso se você estiver usando um emulador também.Se você clicar em um item específico, ele mostrará mais detalhes no lado direito.
Desde que
Android
eu vou postar relacionados a ele.~ É melhor se você salvar uma cópia da web. Para vê-lo offline.
fonte
O Android 3.2 introduz uma nova abordagem para os tamanhos de tela; os números que descrevem o tamanho da tela estão todos em unidades “dp”.
menor largura dp: a menor largura disponível para o layout do aplicativo em unidades “dp”; esta é a menor largura de largura de banda que você encontrará em qualquer rotação da tela.
Para criar um clique com o botão direito do mouse em res >>> novo >>> diretório de recursos do Android
Na janela Qualificadores disponíveis , mova a Largura Menor da Tela para Qualificadores Escolhidos
Na janela Largura da tela , basta escrever o valor "dp" a partir de que você deseja que o Android Studio use esse efeito.
Em seguida, mude para a visualização Projeto , 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.
fonte