2011-01-26 2 views
0

OnCreateメソッド中にdo内にイメージを描画しようとしていますが、表示に失敗しています。は、OnCreateメソッド中にdoを含むイメージを表示できません

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    drawElements(); 
} 

public void drawElements(){ 
    do{ 
     RelativeLayout layout = new RelativeLayout(this); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(80, 60); 
params.setMargins(0, 0, 0, 0); 
    ImageView image = new ImageView(this); 
personaje.setImageResource(R.drawable.image); 
layout.addView(image, params); 
     setContentView(layout); 
     Log.i("MainActivity","here comes"); 
    }while(!esc) 
    } 

ログがLogCatに常に表示されますが、画像が表示されませんので、それは、do whileに来るのでそれは奇妙です。

実際には、onCreateに指定されているようにステータスバーまたはアプリケーションのタイトルを削除できませんが、doを削除すると正しく表示されます。

提案がありますか?

+1

whileループで何を達成しようとしていますか?複数の画像? escはどこに定義されていますか?それはいつ変わるのですか?私はこのコードが意味をなさないとは思わない。 –

+0

escはonCreateメソッドの前に定義されています。キーが押されたときに値がtrueに変更され、ループが機能しなくなるのはブールです。私は同じイメージを予知するようにしようとし、キーボードの矢印を押すとイメージの位置を変更します。私はゲームのための古典的な構造を作ることを試みている。 – karse23

答えて

2

デザイン全体を再考する必要があります。あなたがここでやっていることは意味をなさない。

あなたのwhileループは永遠にループし、UIスレッドをブロックします。したがって、何も表示されません。

代わりに、onCreateに1つの画像を表示する必要があります。リスナー内の画像を変更するキーリスナーまたはボタンリスナーを追加します。

+0

この言語とプラットフォームでこれが可能かどうかはわかりませんが、C、C++、ASなどの他の言語でも同じことをしましたが、完全に機能しました。ここにGUIが浸透しているようです...他のケースのescは、アプリケーションを終了してウィンドウを閉じることでした。 – karse23

+0

Androidの仕組みを理解するには、基本的なドキュメントを読む必要があります。 UIスレッドで、非同期イベントを待つようなものをブロックすることは絶対にしないでください。それだけでは意味がありません。 –

+0

ok mayra私はあなたがどのように答えたかをしようとします。ありがとうございました! – karse23

関連する問題