6

私は次のクラスを持っています

public class GameActivity extends Activity {
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      View gameView = new GameView(this);
      setContentView(gameView);
   }
}


そして今、クラス GameView にボタンを追加したいと思います。

public GameView(Context context) {
        super(context);
// Code ...
}

ゲーム中にこのボタンが必要なので、描画している他のすべてのキャンバスの前に配置する必要があります。
どうやってやるの?

4

2 に答える 2

1

新しいボタンを作成しますか?

Button b = new Button(context);
b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
                                   LayoutParams.WRAP_CONTENT)); 

gameView.addView(b);

単純なビューの親ViewGroupとして使用GameView

ViewGroup gameView = new GameView(this);


public class GameView extends ViewGroup { //...
于 2012-04-04T16:01:36.623 に答える
-1
View gameView = new GameView(this);

上記の行を以下の行に置き換えます::

View gameView = new GameView(this).createView();

そして今、ゲームビューでボタンなどを使ってビューを作成します。

    public class GameView extends View {
    private Activity _activity;
    public GameView (Activity _activity) {
        super(_activity);
        // TODO Auto-generated constructor stub
        this._activity = _activity; 
    }
public View createView(){
        LinearLayout l = new LinearLayout(_activity);
        l.setOrientation(LinearLayout.VERTICAL);
        Button btn = new Button(_activity);
        btn.setId(1);
            btn.setText("btn"+(i+1));
        l.addView(btn);
        return l;
    }
}

この動作するコードを試してください:::

于 2012-04-04T16:57:35.583 に答える