每500ms在布局中随机移动ImageButton

时间:2016-06-15 13:57:34

标签: android random

我有一个图像按钮,我想随机移动, 我不知道该怎么做,我也试过其他问题,但是无法理解, 我希望我的图像按钮在屏幕上随机移动,它不应该移出,它应该首先与每个设备兼容。

我也尝试过在gridlayout中制作按钮,然后单独使它们在1000毫秒内可见和不可见,但这不是有效的方法...... 还有其他方法吗?

public void display(int x){
        String q=score.toString();
       s.setText(q);
            switch (x) {
                case 1: {
                    new Handler().postDelayed(new Runnable() {

                    @Override
                    public void run() {

                        b1.setVisibility(View.VISIBLE);
                        b1.setEnabled(true);
                        b1.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                score++;

                            }
                        });

                    }
                }, 1000);


                new Handler().postDelayed(new Runnable() {

                    @Override
                    public void run() {

                        disable();
                    int x=random();
                    display(x);
                    }
                }, 2000);



            } 

1 个答案:

答案 0 :(得分:0)

您可以使用1并使用setX和setY更改其位置,而不是创建多个按钮。

例如;

new Handler().postDelayed(new Runnable() {

    @Override
    public void run() {
        b1.setX( Enter random number within your screen boundary );
        b1.setY( Enter random number within your screen boundary );
    }
}, 2000);

您需要计算屏幕边界并考虑 setX和setY位置适用于按钮视图的左上角

对于低于8的API,您需要使用如下所示的LayoutParams,或者您也可以在此处引用代码(How can I dynamically set the position of view in Android?

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); //WRAP_CONTENT param can be FILL_PARENT
params.leftMargin = 206; //XCOORD
params.topMargin = 206; //YCOORD
childView.setLayoutParams(params);