如何在随机的屏幕位置显示一个按钮
问题的原因:
AbsoluteLayout已经被弃用,因此无法使用它来在随机的屏幕位置显示一个按钮。
解决方法:
使用上述的代码,通过设置按钮的触摸事件来实现在随机屏幕位置显示按钮的效果。代码中的displaymatrics变量是用来获取屏幕的尺寸信息的,通过调用getDefaultDisplay()方法来获取屏幕的默认显示对象,并使用getMetrics()方法来获取屏幕的尺寸信息。
然后,使用Random类来生成随机的x和y坐标,范围是屏幕的宽度和高度。在按钮的触摸事件中,当触摸事件为ACTION_DOWN时,使用按钮的animate()方法来设置按钮在x和y坐标上的动画效果,从而将按钮移动到随机的屏幕位置。设置动画的持续时间为0,即立即完成移动。
最后,将触摸事件的返回值设置为true,表示已经处理了触摸事件。
通过以上的代码,可以轻松实现将按钮显示在随机屏幕位置的效果。
问题的出现原因:用户想要在屏幕的随机位置显示一个按钮,但是不知道如何实现。
解决方法:
1. 在第二个屏幕上使用absolute layout
,将按钮放置在X=0,Y=0的位置。
2. 在onCreate
方法中,通过以下代码实现按钮在随机位置的显示:
Button button = (Button)findViewById(R.id.my_button); AbsoluteLayout.LayoutParams absParams = (AbsoluteLayout.LayoutParams)button.getLayoutParams(); DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int width = displaymetrics.widthPixels; int height = displaymetrics.heightPixels; Random r = new Random(); absParams.x = r.nextInt(width ) ; absParams.y = r.nextInt(height ); button.setLayoutParams(absParams);
3. 用户想知道如何编写AbsoluteLayout
,以下为示例代码:
4. 如果以上解决方法解决了问题,请将此回答标记为答案,以帮助其他人。
5. 注意,AbsoluteLayout
已经过时,可以参考此链接来设置布局参数。
6. 如果程序运行时出现"Force Close"错误,用户需要检查清单文件中的代码是否正确编写。
7. 用户已经找到问题所在,原因是在清单文件中忘记编写代码导致程序强制关闭。感谢大家的帮助。