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

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

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 ).

2 curtidas

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

Olá

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

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

1 curtida

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.

Qualquer coisa tenho o link do projeto acima atualizado Projeto AndroidStudio