Melhor solução para a diferença de telas no Android?

Fala galera, dei uma boa procurada mas não achei nada sobre isso no forum…

Quem desenvolve para android com certeza ja teve problemas com os diferente tamanhos e resoluções do android… Gostaria de saber qual a melhor maneira de resolver estes problemas. Estou tentando fazer proporcionalmente, ou seja, pegar a altura e a largura da tela e montar o layout dinamicamente, mas acho que não é a melhor solução…

E vocês como fazem?

Cara, o android possui recursos que facilitam (E MUITO) a criação de múltiplas resoluções.

No meu caso, eu prefiro fazer um arquivo de layout modificando apenas as imagens que serão carregadas a partir da densidade da tela do aparelho (Que já é automatico -> drawable-ldpi, mdpi, hdpi).

Um dos conceitos para se fazer isto é a utilização da propriedade ‘WEIGHT’ ou ‘PESO’ nos gerenciadores de layout, e tamém o de ‘GRAVITY’.

Basicamente, você precisa procurar padrões na montagem da sua tela que ajuste as mesmas proporcionalmente quando a densidade (ou resolução) mudar.

Tenta praticar mais…
Abraço.
:slight_smile:

[quote=felipebonezi]Cara, o android possui recursos que facilitam (E MUITO) a criação de múltiplas resoluções.

No meu caso, eu prefiro fazer um arquivo de layout modificando apenas as imagens que serão carregadas a partir da densidade da tela do aparelho (Que já é automatico -> drawable-ldpi, mdpi, hdpi).

Um dos conceitos para se fazer isto é a utilização da propriedade ‘WEIGHT’ ou ‘PESO’ nos gerenciadores de layout, e tamém o de ‘GRAVITY’.

Basicamente, você precisa procurar padrões na montagem da sua tela que ajuste as mesmas proporcionalmente quando a densidade (ou resolução) mudar.

Tenta praticar mais…
Abraço.
:)[/quote]

Valew Felipe, ajudou bastante.

quando seu layout é baseado apenas em imagens essa solução atende seu problema, mais quando vc começa a inserir componentes do proprio android (spinner, textView, etc), e começa a utilizar por exemplos os layouts (LinearLayout, FrameLayout, RelativeLayout) ja não atende mais. a causa disso é que quando vc vai utilizar aparelhos por exemplo com a versão 3.2 do android a resolução é totalmente diferente e vc vai ver que seus componentes vao ficar minusculos, a pouco tempo atras eu estava pequisando sobre isso, e descobri que vc pode criar diretorios de layout especificos para versões resoluções de telas especificas, por exemplo se vc ta utilizando a versao 3.2 sdk 13 se eu nao me engano, basta criar um layout especifico para essa versão, criando um diretorio layout-v13 e salvando seus xml’s modificados dentro dessa pasta, se vc for trabalhar com telas grandes pode ter tb, layout-large, entre outros. Dá uma olhada nesse link que explica melhor.

http://developer.android.com/guide/practices/screens_support.html

[quote=danilorangelmg]quando seu layout é baseado apenas em imagens essa solução atende seu problema, mais quando vc começa a inserir componentes do proprio android (spinner, textView, etc), e começa a utilizar por exemplos os layouts (LinearLayout, FrameLayout, RelativeLayout) ja não atende mais. a causa disso é que quando vc vai utilizar aparelhos por exemplo com a versão 3.2 do android a resolução é totalmente diferente e vc vai ver que seus componentes vao ficar minusculos, a pouco tempo atras eu estava pequisando sobre isso, e descobri que vc pode criar diretorios de layout especificos para versões resoluções de telas especificas, por exemplo se vc ta utilizando a versao 3.2 sdk 13 se eu nao me engano, basta criar um layout especifico para essa versão, criando um diretorio layout-v13 e salvando seus xml’s modificados dentro dessa pasta, se vc for trabalhar com telas grandes pode ter tb, layout-large, entre outros. Dá uma olhada nesse link que explica melhor.

http://developer.android.com/guide/practices/screens_support.html[/quote]

Valew Daniel, é esse mesmo meu problema… não conhecia essa solução…

Vou tentar.

Olá pessoal, como posso resolver o problema de suporte a múltiplos tamanhos telas para dispositivos que não seguem o padrão?
Exemplo, tenho um tablet de 7’’ da multilaser, o qual possui resolução 480x800 (vertical) e 800x480 (horizontal). Com relação a orientação do dispositivo, não tenho problema, pois posso fazer um layout-land específico ou travar a tela no manifest para que fique em somente uma orientação. Porém, em testes realizados, percebi que este tablet possui densidade em 120dpi, conforme no guia android (http://developer.android.com/guide/practices/screens_support.html), 120dpi é considerado um low dpi, ou seja, small. Segundo aquele guia, uma tela de 7’’ polegadas deveria ter no mínimo uns 200dpi pra ser considerado um high dpi. Devido a isso, tenho problemas quanto aos imageviews, imagebuttons, etc, pois o android não pega as imagens maiores na pasta drawable-hdpi.

Como posso resolver este problema??? Algum de vcs já enfrentou este tipo de situação???

Fiz tbm testes com o tablet motorola Xoom (10.1" polegadas), o qual possui resolução 800x1232, e densidade em 160dpi ( é considerado medium), o qual deveria ser no mínimo uns 280dpi (xLarge)