Android: tamanho da imagem de fundo (em pixels) que suporta todos os dispositivos


114

Estou criando um aplicativo que será executado em todos os dispositivos Android. Quero criar gráficos xhdpi para meu aplicativo. Meu aplicativo está em tela cheia. Estou confuso na criação de gráficos. qualquer um pode me dizer os melhores tamanhos de minha imagem de fundo em pixels.

Por exemplo:

  • xhdpi: 720x1280 px
  • hdpi: 480x800 px
  • mdpi: 320x480 px
  • ldpi: 240x320 px

Sugira-me os melhores tamanhos que aparecerão em todos os dispositivos bons. Porque meus gráficos são o núcleo do meu aplicativo.

Quero que cada dispositivo obtenha a melhor imagem que deseja. O Android não estará envolvido na compactação ou expansão da imagem.


3
Leia o Android Documentation's Multiple screen support, eles fornecem o padrão para a interface do usuário
RajeshVijayakumar

Use esta solução da melhor maneira para todos os dispositivos antigos e novos e para os próximos. stackoverflow.com/a/40255870/2489061
Umer

Respostas:


199

A seguir estão as melhores dimensões para o aplicativo funcionar em todos os dispositivos. Para compreender várias telas de suporte, você deve ler http://developer.android.com/guide/practices/screens_support.html

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px

10
XX deve ser 2x HDPI
LarryBud

1
interessante, o Nexus 5 é xxhdpi, mas o tamanho da tela é 1080x1920
Romano

3
O LG G3 tem resolução de 1440 x 2560 e usa xxxhdpi.
Roel

1
Esse é o principal problema / desafio com o Android, não há tamanho definido para hdpi, xhdpi, etc. porque cada fabricante pode fazer um telefone / tablet de tamanhos diferentes, ao contrário do IOS, onde apenas a apple o faz. Veja a seção sobre intervalo: developer.android.com/guide/practices/…
toidiu

Use esta solução da melhor maneira para todos os dispositivos antigos e novos e para os próximos. stackoverflow.com/a/40255870/2489061
Umer

63

Matrizes de dispositivos Android

                            ldpi     mdpi     hdpi    xhdpi    xxhdpi      xxxhdpi
Launcher And Home           36*36    48*48   72*72    96*96    144*144     192*192
Toolbar And Tab             24*24    32*32   48*48    64*64    96*96       128*128
Notification                18*18    24*24   36*36    48*48    72*72       96*96 
Background                 240*320  320*480 480*800  768*1280  1080 *1920  1440*2560 

(Para uma boa abordagem, menos o tamanho da barra de ferramentas da altura total da tela de fundo e, em seguida, os gráficos de design das telas)

Para obter mais ajuda (este link também inclui tablets):

https://design.google.com/devices/

Ícones nativos do Android (recomendado) Você pode alterar a cor desses ícones de maneira programática . https://design.google.com/icons/


Por que as teses não se alinham com os multiplicadores sugeridos aqui? developer.android.com/training/multiscreen/screendensities#java
Ben


5

Procurei na internet as dimensões corretas dessas densidades para imagens quadradas, mas não consegui encontrar nada confiável.

Se serve de consolo, referindo-se à resposta de Veerababu Medisetti, usei essas dimensões para SQUARES :)

xxxhdpi: 1280x1280 px
xxhdpi: 960x960 px
xhdpi: 640x640 px
hdpi: 480x480 px
mdpi: 320x320 px
ldpi: 240x240 px

Use esta solução da melhor maneira para todos os dispositivos antigos e novos e para os próximos. stackoverflow.com/a/40255870/2489061
Umer

4

Ferramenta GIMP é exatamente o que você precisa para criar as imagens para diferentes dispositivos de resolução de pixel.

Siga esses passos:

  1. Abra a imagem existente na ferramenta GIMP.
  2. Vá para o menu "Imagem" e selecione "Escalar Imagem ..."
  3. Use a dimensão de pixel abaixo de que você precisa:

    xxxhdpi: 1280x1920 px

    xxhdpi: 960x1600 px

    xhdpi: 640x960 px

    hdpi: 480x800 px

    mdpi: 320x480 px

    ldpi: 240x320 px

  4. Em seguida, "Exportar" a imagem do menu "Arquivo".


3

Meu entendimento é que se você usar um Viewobjeto (como deveria, por exemplo android:windowBackground), o Android escalará automaticamente sua imagem para o tamanho correto. O problema é que o dimensionamento excessivo pode resultar em artefatos (durante o dimensionamento para cima e para baixo) e embaçamento. Devido às várias resoluções e proporções de aspectos no mercado, é impossível criar ajustes "perfeitos" para cada tela, mas você pode fazer o seu melhor para garantir que apenas um pouco de dimensionamento seja necessário e, assim, mitigue os efeitos colaterais indesejados . Então o que eu faria é:

  • Mantenha a proporção de escala de 3: 4: 6: 8: 12: 16 entre as seis densidades generalizadas (ldpi, mdpi, hdpi, etc.).
  • Você não deve incluir elementos xxxhdpi para seus elementos de IU, esta resolução é destinada apenas para aumentar a escala dos ícones do iniciador (apenas pasta mipmap) ... Você não deve usar o qualificador xxxhdpi para outros elementos da IU que não o ícone do iniciador. ... embora, por exemplo. no Samsung edge 7, a chamada getDisplayMetrics().densityretorna 4 (xxxhdpi), então talvez esta informação esteja desatualizada.
  • Em seguida, observe os novos modelos de telefone no mercado e encontre os mais representativos. Presumindo que o novo pixel do Google seja uma boa representação de um telefone Android: ele tem uma resolução de 1080 x 1920 a 441 dpi e um tamanho de tela de 4,4 x 2,5 polegadas . Em seguida, nos documentos do desenvolvedor Android :

    • ldpi (baixo) ~ 120dpi
    • mdpi (médio) ~ 160dpi
    • hdpi (alta) ~ 240dpi
    • xhdpi (extra-alto) ~ 320dpi
    • xxhdpi (extra-extra-alto) ~ 480dpi
    • xxxhdpi (extra-extra-extra-alto) ~ 640 dpi

    Isso corresponde a uma xxhdpitela. A partir daqui, eu poderia dimensionar esses 1080 x 1920 para as proporções (3: 4: 6: 8: 12) acima.

  • Também posso reconhecer que a redução da resolução é geralmente uma maneira fácil de dimensionar e, portanto, posso querer bitmaps um pouco maiores que o meu apk (Nota: maior consumo de memória). Mais uma vez, supondo que a largura e a altura da tela de pixel sejam representativas, eu aumentaria a escala 1080x1920 por um fator de 480/441, deixando minha imagem de fundo com resolução máxima em aprox. 1200 x 2100, que deve ser dimensionado em 3: 4: 6: 8: 12.
  • Lembre-se de que você só precisa fornecer drawables de densidade específica para arquivos bitmap (.png, .jpg ou .gif) e arquivos Nine-Patch (.9.png). Se você usar arquivos XML para definir recursos de drawable (por exemplo, formas), basta colocar uma cópia no diretório de drawable padrão.
  • Se você tiver que acomodar proporções realmente grandes ou ímpares, crie pastas específicas para elas também, usando os sinalizadores para isso, por exemplo. sw, long, large, Etc.
  • E não há necessidade de desenhar o fundo duas vezes. Portanto, defina um estilo com<item name="android:windowBackground">@null</item>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.