私はActivityLoop(Activityを拡張するクラス)を持っています。 しかし、レイアウトにxmlファイルを使用する代わりに、私はキャンバスに描画できるようにするため、クラスを使用しています。 (私はいくつかのチュートリアルを見てきましたが、これはあなたがやるべきことです)Android - プログラムボタンを作成
レイアウトクラスはGameLoopLayoutと呼ばれています。
私はレイアウトクラスでゲームループを実行しています。私は画面にビットマップをレンダリングし、FPSを制御することができます。 しかし、今、私はそれにボタンを追加するが、私はXMLレイアウトファイルを使用していないので、私はそれを行う方法がわからない。誰でも私を助けてくれますか?
私は気圧やってる:
GameLoopLayout:コードの下に
Button button;
Canvas canvas;
SurfaceHolder surfaceHolder;
public GameLoopActivityLayout(Context context) {
//all necessary initializations here...
button = new Button(context);
button.setEnabled(true);
button.setLeft(10);
button.setTop(20);
}
//render function called during game loop
private void render() {
if (!surfaceHolder.getSurface().isValid())
return;
canvas = surfaceHolder.lockCanvas();
//draw all game objects to canvas...
button.draw(canvas);
surfaceHolder.unlockCanvasAndPost(canvas);
}
[コメントが削除されました] – jorgemf
私はかなり失われていますが、どういうわけか私はそれを仕事にしました。ここで何がやっているのか教えてください。 onCreateメソッドは次のとおりです。 setContentView(R.layout.game_loop); レイアウト=(GameLoopLayout)findViewById(R.id.game_loop_layout); – Tirafesi
@Tirafesiあなたは何について混乱していますか?これはアンドロイドでUIを行う標準的な方法です。 'setContentView()'にXMLレイアウトを渡すと、XMLで設定したIDでビューをルックアップします。それはすべて起こっていることです。 – Karakuri