我正在创建一个应用程序,它会在x轴上随机显示一个对象,但不知何故,我的应用程序在启动时崩溃。在x轴上设置对象的随机位置
它适用于我使用DisplayMetrics,但它获得整个屏幕的宽度。我想要获得宽度布局。但在启动应用程序崩溃,当我尝试检索布局宽度,并设置一个随机位置
我有一种感觉,面前的TIMER开始可以检索版式宽度。这就是为什么它崩溃
这是代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frame = (RelativeLayout) findViewById(R.id.frame);
screenWidth = frame.getWidth();
r = new Random();
timer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
goDown();
}
});
}
}, 0, 20);
//FUNCTIONS FOR IT TO GO DOWN
public void goDown() {
//LAYOUT WIDTH
frameWidth = screenWidth;
//DISPLAYING RANDOM X POSITION
newXposition = r.nextInt(frameWidth);
//SKULLS FUNCTIONS
skullY += skullSpeed;
if(skullY > frameHeight)
{
skullY = -100.0f;
skullX = newXposition - skull.getWidth();
}
skull.setX(skullX);
skull.setY(skullY);
}
,这是我的logcat:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.gin.myapplication, PID: 8786
java.lang.IllegalArgumentException: n <= 0: 0
at java.util.Random.nextInt(Random.java:182)
at com.example.gin.myapplication.MainActivity.goDown(MainActivity.java:91)
at com.example.gin.myapplication.MainActivity$1$1.run(MainActivity.java:74)
提前任何帮助谢谢! :D
你在哪里调用仓库()? – Elinor
@Elinor对不起,我忘了改变这一点。它真的是失败了。 haha –