java - 设置边距时,相对布局中的按钮会被压扁

标签 java android random android-relativelayout

每次单击按钮时,我都会随机化相对 View 上按钮的位置。我通过以编程方式更改按钮的边距来实现此目的,如代码所示:

 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”是按下时随机化按钮位置的按钮。

但是,这些特定边距会产生以下图像

enter image description here

我需要:

enter image description here

有谁知道为什么会发生这种情况以及如何解决它?

最佳答案

您设置:

    params.rightMargin = 608; 
    params.leftMargin = 428;

因此设备宽度必须至少为608+428+按钮宽度。是吗?

关于java - 设置边距时,相对布局中的按钮会被压扁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51803762/

相关文章:

python - 生成随机分布时转换为 int - Python

java - 迭代集合并删除满足特定条件的项目的快速方法

java - 字计数器程序未产生正确的字数

android - 如何在 ConstraintLayout 中使用创建者

android - 在适用于 Android (Hyper-V) 的 VS 模拟器上运行 API 级别 24+

c - 确保对正确的类型进行正确的操作

algorithm - 均匀奖品分配

Java:读取jpeg/gif的压缩比

java - 枚举值的 Spring Boot JPA native 查询

android - 在 EditText 之间自动传递焦点