我正在教几个同事Java,意图进入Android游戏编程。有没有办法在屏幕上显示一个框,当你触摸它时它会改变颜色,而不创建一个Activity(这是在Eclipse中)并潜入丑陋的XML世界?
答案 0 :(得分: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,因此here是一个教程。
答案 1 :(得分:1)
您可以以编程方式创建窗口小部件,并将它们添加到您在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);
答案 2 :(得分:1)
我听到你在说什么,是的 - 虽然我同意当你只想在android中编写游戏时XML很无聊 - 我可以说XML是android的必要之物。至少将ViewStubs放在XML中并稍后在代码中对它们进行充气。
或者习惯于调用许多“新的LayoutParams”调用,如果你想要它们正确格式化的话。
但如果您希望它在Android上工作,那么您的课程真的需要覆盖Activity。