如何在屏幕上随机添加按钮?

时间:2017-07-30 18:13:40

标签: android

我有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);
}

但问题是某些按钮隐藏在屏幕之外。如何解决这个问题呢?在此之后,按钮如何不能相互叠加?

0 个答案:

没有答案