我正在教几位同事 Java,目的是进入 Android 游戏编程。有没有办法在屏幕上显示一个框,当你触摸它时它会改变颜色,而无需创建 Activity(这是在 Eclipse 中)并潜入丑陋的 XML 世界?
问问题
3944 次
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,使用它就会变得更加容易和快捷,所以这里有一个教程供您使用。
于 2012-07-29T03:56:08.720 回答
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 回答
2
我听到你在说什么,是的——虽然我同意当你只想在 android 中编写游戏时 XML 很无聊——我可以说 XML 是 android 的一个必要的邪恶。至少将 ViewStubs 放在 XML 中,然后在代码中扩充它们。
或者,如果您希望它们的格式正确,请习惯于调用许多“新的 LayoutParams”调用。
但是,如果您希望它在 Android 上运行,您的课程确实需要覆盖 Activity。
于 2012-07-29T03:56:51.810 回答