[Resolvido]Mudar de um layout para uma outra layout diferente conforme a resolução da tela

6 respostas
java
I

Boa a tarde,poderiam me informar se existe um metodo, que conforme o tamanho da tela do celular, o layout que aparecia inicialmente na tela,mudaria para outro layout diferente. assim mantendo os valores dos botoes e textos etc…

Por exemplo estou desenvolvendo uma aplicação que tem os botoes de joystick na tela, e entre os botoes existe uma tela que mostra os dados recebidos do bluetooth.Se caso a tela do celular fosse de uma resolução X ate resulução X as posições dos mesmos botoes e tela estaria em lugares diferentes.

Qualquer coisa estou disponibilizando o link do projeto para ter noção do que estou falando.

Link gitHub do projeto

6 Respostas

L

Não sei se é exatamente isso que vc quer, mas tem como sim, no meu caso eu utilizo o Android Studio, e nele o caminho seria vc clicar com o botão direito em cima da pasta layout depois new -> Layout resource file, na janela que abrir em “File name:” dê o mesmo nome do layout que vc quer que possa ser redimensionado, em Available qualifiers click na opição Size, dai escolha o tamanho de tela que vc quer Small, Normal, Large e X-Large e der OK, sera criado um novo arquivo xml de layout só que com a identificação do tamanho de tela na frente exemplo: activity_main.xml(small), ai é só vc pegar o código do layout colar nesse novo arquivo e reajustar da forma que vc quiser, o próprio android se encarrega de identificar o tamanho da tela em que o app esta sendo executado e chama o layout apropriado (se o celular tiver uma tela X-Large ele vai chamar o activity_main.xml(X-Large)) e na falta do layout apropriado ele chama o layout padrão mesmo( seria o activity_main.xml ).

I

Opa, isso mesmo que eu queria, funcionou perfeitamente, Obrigado.

A

Olá

Gostei disso, só que fiquei com uma dúvida. Os arquivos XML (layouts) tem que ter no mesmo nome em cada pasta?

I

Sim, exatamente, você chama o nome dela pra referenciar a tela com o código, se o nome tiver diferente ira complicar.

L

se eu não me engano sim, cada layout terá o mesmo nome só mudando o identificador dele Small, Normal, Large…, é que na classe quando vc chama um layout vc só precisa se preocupar com o nome do dele(Ex: activity_main), se é Small ou Large ai é o android que decide.

I

Qualquer coisa tenho o link do projeto acima atualizado Projeto AndroidStudio

Criado 31 de março de 2016
Ultima resposta 22 de set. de 2016
Respostas 6
Participantes 3