Tutorial Forca #8 - Layout Paisagem
Boa tarde!
O jogo está funcionando, certo? Bom... funcionar até funciona, mas o que acontece caso você vire o seu celular (Ctrl+F12 no emulador)? Ele desconfigura toda a tela, tentando manter o layout criado.
Para resolver isso temos duas saídas:
É preciso deixar os arquivos conforme abaixo:
activity_game.xml
O jogo está funcionando, certo? Bom... funcionar até funciona, mas o que acontece caso você vire o seu celular (Ctrl+F12 no emulador)? Ele desconfigura toda a tela, tentando manter o layout criado.
Para resolver isso temos duas saídas:
- Podemos alterar o AndroidManifest.xml, alterando a tag actvity para conter a opção screenOrientation, onde não permitirá que o layout se ajuste às rotações do celular
<activity android:name=".GameActivity" android:screenOrientation="portrait" /> <activity android:name=".MainActivity" android:screenOrientation="portrait" />
- Ou criar uma outra pasta de layout chamada layout-land, que armazenará os layouts feitos para o quando o celular ficar como landscape. (que é o caminho que escolhi para este tutorial)
É preciso deixar os arquivos conforme abaixo:
activity_game.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/ivForca" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginTop="10dp" android:contentDescription="@null" android:src="@drawable/forca_6" /v <LinearLayout android:id="@+id/lBotoes" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:layout_toRightOf="@id/ivForca" android:layout_alignParentBottom="true" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button style="@style/letras" android:id="@+id/bA" android:text="A" /> <Button style="@style/letras" android:id="@+id/bB" android:text="B" /> <Button style="@style/letras" android:id="@+id/bC" android:text="C" /> <Button style="@style/letras" android:id="@+id/bD" android:text="D" /> <Button style="@style/letras" android:id="@+id/bE" android:text="E" /> <Button style="@style/letras" android:id="@+id/bF" android:text="F" /> <Button style="@style/letras" android:id="@+id/bG" android:text="G" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button style="@style/letras" android:id="@+id/bH" android:text="H" /> <Button style="@style/letras" android:id="@+id/bI" android:text="I" /> <Button style="@style/letras" android:id="@+id/bJ" android:text="J" /> <Button style="@style/letras" android:id="@+id/bK" android:text="K" /> <Button style="@style/letras" android:id="@+id/bL" android:text="L" /> <Button style="@style/letras" android:id="@+id/bM" android:text="M" /> <Button style="@style/letras" android:id="@+id/bN" android:text="N" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button style="@style/letras" android:id="@+id/bO" android:text="O" /> <Button style="@style/letras" android:id="@+id/bP" android:text="P" /> <Button style="@style/letras" android:id="@+id/bQ" android:text="Q" /> <Button style="@style/letras" android:id="@+id/bR" android:text="R" /> <Button style="@style/letras" android:id="@+id/bS" android:text="S" /> <Button style="@style/letras" android:id="@+id/bT" android:text="T" /> <Button style="@style/letras" android:id="@+id/bU" android:text="U" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="35dp" android:layout_marginRight="35dp" android:orientation="horizontal" > <Button style="@style/letras" android:id="@+id/bV" android:text="V" /> <Button style="@style/letras" android:id="@+id/bW" android:text="W" /> <Button style="@style/letras" android:id="@+id/bX" android:text="X" /> <Button style="@style/letras" android:id="@+id/bY" android:text="Y" /> <Button style="@style/letras" android:id="@+id/bZ" android:text="Z" /> </LinearLayout> </LinearLayout> <TextView android:id="@+id/tvPalavra" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/lBotoes" android:layout_toRightOf="@id/ivForca" android:gravity="center" android:text="PALAVRA SECRETA" /> </RelativeLayout>activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerVertical="true" android:layout_margin="30dp" android:contentDescription="@null" android:src="@drawable/forca_0" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_toRightOf="@id/imageView1" android:orientation="vertical" > <Button android:id="@+id/bSair" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" android:layout_marginBottom="50dp" android:layout_marginLeft="85dp" android:layout_marginRight="85dp" android:text="Sair" /> <Button android:id="@+id/bStart2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_above="@id/bSair" android:layout_marginLeft="35dp" android:layout_marginRight="35dp" android:text="2 Jogadores" /> <Button android:id="@+id/bStart1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_above="@id/bStart2" android:layout_marginLeft="35dp" android:layout_marginRight="35dp" android:text="1 Jogador" /> <ImageView android:id="@+id/ivConfig" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginRight="20dp" android:layout_marginBottom="20dp" android:contentDescription="@null" android:src="@drawable/config" /> </RelativeLayout> </RelativeLayout>É isso! Agora, ao girar o celular, o layout vai se adaptar ao invés de desconfigurar. Dá um pouco de trabalho a mais que a primeira opção, mas também dá uma incrementada no visual da aplicação. Agora cabe a vocês escolherem o melhor caminho!
Clique aqui para ver as alterações de hoje, e para o projeto completo, clique aqui.
Este comentário foi removido pelo autor.
ResponderExcluirAndre,
ResponderExcluirReparei que se vc troca a posição de vertical pra horizontal e vice e versa, o aplicativo altera a palavra escolhida.
Existe alguma forma de resolver isso?!
abraços,
Leonardo
coloque o jogo para uma única posição.
Excluir