6

私は、Android ゲーム プログラミングを始めるつもりで、数人の同僚に Java を教えています。画面にボックスを表示し、タッチすると色が変わる方法はありますか?アクティビティを作成せずに (これは Eclipse にあります)、XML の醜い世界に飛び込みますか?

4

3 に答える 3

3

リクエストに応じてAndroidでUIをプログラムで作成する例を次に示します。

public class MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Button changeColor = new Button(this);
        changeColor.setText("Color");
        changeColor.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));

        changeColor.setOnClickListener(new View.OnClickListener() {
            int[] colors = {Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW};
            @Override
            public void onClick(View view) {
                final Random random = new Random();
                view.setBackgroundColor(colors[random.nextInt(colors.length - 1) + 1]);
            }
        });
        setContentView(changeColor);
    }

ただし、レイアウトにXMLを使用することを強くお勧めします。XMLを理解すれば、XMLを使用する方がはるかに簡単で迅速なので、ここにチュートリアルがあります。

于 2012-07-29T03:56:08.720 に答える
2

あなたの言っていることを聞きました。そうです。AndroidでゲームをコーディングしたいだけでXMLが退屈であることに同意しますが、XMLはAndroidの必需品であると言えます。少なくともViewStubsをXMLに入れて、後でコードで膨らませます。

または、適切にフォーマットしたい場合は、多くの「新しいLayoutParams」呼び出しを呼び出すことに慣れてください。

ただし、Androidで動作させたい場合は、クラスでActivityを上書きする必要があります。

于 2012-07-29T03:56:51.810 に答える
2

プログラムでウィジェットを作成し、onCreate でコンテンツ ビューとして設定したレイアウトに追加できます。これに沿った何かが機能します:

RelativeLayout layout = new RelativeLayout(this);
Button btnChangeColour = new Button(this);
btnChangeColour.setText("Change Colour");
btnChangeColour.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        v.setBackgroundColor(...);
    }
});
layout.addView(btnChangeColour);
setContentView(layout);
于 2012-07-29T03:08:15.520 に答える