每次单击按钮时,我都会在相对视图中随机化按钮的位置。我这样做是通过以编程方式更改按钮的边距,如代码所示:
Button testbtn = findViewById(R.id.testbtn);
testbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Get Screen size
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
//Save dimensions in variables
int widthScreen = metrics.widthPixels;
int height = metrics.heightPixels;
TextView width_height = findViewById(R.id.width_height);
//Declare random
Random randomDimension = new Random();
//Declare layout params
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
params.rightMargin = 608;
params.leftMargin = 428;
params.topMargin = randomDimension.nextInt(height) +1;
//params.setMargins();
buttonIDs[1].setLayoutParams(params);
width_height.setText(params.leftMargin+" "+params.rightMargin);
}
});
在这种情况下,“ buttonIDs []”是我在该类中前面声明的数组,而“ testbtn”是按下该按钮时将我的按钮位置随机化的按钮。
但是,这些特定的边距会产生以下图像
我需要:
有人知道为什么会这样以及如何解决吗?
答案 0 :(得分:1)
您设置了:
params.rightMargin = 608;
params.leftMargin = 428;
因此,设备必须至少608+428+width of the button
宽。是吗?