Estou tendo dificuldade de como deixar a tela vertical da minha aplicação alinhada.
Eu tenho a aplicação na horizontal, e fica tudo certinho, bem alinhado, porém, quando eu coloco na vertical, a imagem do meio fica totalmente desalinhada.
É o seguinte, coloquei no diretorio drawable-hdpi a imagem back no formato horizontal, e no diretorio drawable-land a imagem back no formato vertical.
As duas com o mesmo nome. Até ai tudo certo.
Só que, ao colocar a imagem logo tb nos dois diretórios, quando vai pra vertical da problema
alguem pode me ajudar?
Consegui fazer o background,
ficou assim, confere?
android:background="@drawable/back"
Tudo ok. no caso do restante das imagens?
Eu tenho um logo que é pra ficar no meio da tela, de acordo com meu codigo ele fica na vertical, porem na horizontal nao fica.
Só não estou entendendo o seguinte,
Essa é minha tela inicial, deu certo.
ai no caso da tela de jogo mesmo que eu vou ter que colocar imagens mais a direita, ou a esquerda, como que vai ficar a questao do rendimensionamento da tela?
Normalmente o que os devs fazem é criar o jogo para apenas uma orientação, o que na minha opnião é bem melhor do que se preocupar em ter um layout para os dois.
No seu caso, voce vai precisar verificar a orientação atual e pegar a imagem correta e desenhar no seu componente. O Android só cuida disso na hora que voce vai fazer o load das imagens enquanto inflando.
Se voce está fazendo um jogo, por que quer suportar landscape e portrait? Isso te obriga a fazer um layout para cada orientação para aproveitar melhor o espaço.
Android tem que implementar tudo na mão. Não me leve a mal, os aparelhos podem ser fantásticos, mas em termos de API e ferramentas para o desenvolvedor, Android é mais parecido com j2me.
Android tem que implementar tudo na mão. Não me leve a mal, os aparelhos podem ser fantásticos, mas em termos de API e ferramentas para o desenvolvedor, Android é mais parecido com j2me.[/quote]
Ta bom, e como voce vai especificar um layout para cada orientação apenas girando a tela?
Deixar apenas uma unica orientação na aplicação é tão facil no Android quanto no iOS.
Bom, não sei qual o jogo em questão, se é indicado ou não usar as duas orientaçoes, provavelmente vc esta certo. Mas…
…pello que entendi “é tão fácil quanto” quer dizer que não existe outra possiblidade a não ser usar um layout para cada tela ou então implementar seu proprio framework e por isso a comparação com j2me.
Aproveitando a situação, gostaria que vcs me ajudassem em outra coisa.
Eu gostaria de fazer uma tela que quando abrisse o jogo aparecesse o logo e dpois fosse pro menu, uma espécie de Splash Window.
No caso, eu implemento o método run na classe que desenha as imagens ou na classe principal que chama as outras?
Eis as classes.
package com.android;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ProgressBar;
public class RedeDroidCanvas extends View{
private Bitmap logo;
private Paint paint;
public RedeDroidCanvas(Context context) {
super(context);
init();
}
public RedeDroidCanvas(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public RedeDroidCanvas(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo);
paint = new Paint();
}
public void onDraw(Canvas canvas){
canvas.save();
canvas.drawBitmap(logo, (getWidth()/2) - (logo.getWidth()/2), (getHeight()/2) - (logo.getHeight()/2), paint);
canvas.restore();
}
}
public class RedeDroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}