[Resolvido]Mudar de um layout para uma outra layout diferente conforme a resolução da tela
6 respostas
java
Igor_Fachini
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.
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 ).
Igor_Fachini
Opa, isso mesmo que eu queria, funcionou perfeitamente, Obrigado.
A
alexpassos
Olá
Gostei disso, só que fiquei com uma dúvida. Os arquivos XML (layouts) tem que ter no mesmo nome em cada pasta?
Igor_Fachini1 like
Sim, exatamente, você chama o nome dela pra referenciar a tela com o código, se o nome tiver diferente ira complicar.
L
leandro_mafra
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.