我有n
按钮。我需要随机将它们放在屏幕上。他们不必相互叠加。而且他们也不必在屏幕外面推出。在小搜索之后,我找到了实现它的方法here
以下是我的代码:
setContentView(R.layout.activity_main);
LinearLayout l = (LinearLayout)findViewById(R.id.root) ;
DisplayMetrics displaymatrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymatrics);
for(int i = 1 ; i<=n ; i++) {
Button b = new Button(this) ;
b.setText("A");
b.setLayoutParams(new LinearLayout.LayoutParams(dpToPx(65),dpToPx(65)));
Random R = new Random();
float dx = R.nextFloat() * displaymatrics.widthPixels;
float dy = R.nextFloat() * displaymatrics.heightPixels;
b.animate().x(dx).y(dy).setDuration(0).start();
l.addView(b);
}
}
private int dpToPx(int dp) {
return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}
但问题是某些按钮隐藏在屏幕之外。如何解决这个问题呢?在此之后,按钮如何不能相互叠加?