Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将ImageView动态对齐到约束布局的中心?_Android_Android Constraintlayout - Fatal编程技术网

Android 如何将ImageView动态对齐到约束布局的中心?

Android 如何将ImageView动态对齐到约束布局的中心?,android,android-constraintlayout,Android,Android Constraintlayout,我正在尝试将图像视图与约束布局的中心对齐。我写下面的代码,但它不工作 代码 int size = 150; ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(size, size); layoutParams.bottomToBottom = ConstraintSet.PARENT_ID; layoutParams.endToEnd = ConstraintSet.PARENT_ID;

我正在尝试将图像视图与约束布局的中心对齐。我写下面的代码,但它不工作

代码

int size = 150;
ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(size, size);

layoutParams.bottomToBottom = ConstraintSet.PARENT_ID;
layoutParams.endToEnd = ConstraintSet.PARENT_ID;
layoutParams.startToStart = ConstraintSet.PARENT_ID;
layoutParams.topToTop = ConstraintSet.PARENT_ID;

circleImageView.setLayoutParams(layoutParams);
尝试此方法,使用ConstraintSet可以轻松地以编程方式将视图渲染到ConstraintLayout的中心

在代码中:

ConstraintSet.PARENT_ID
不是父约束布局的真实ID。您需要将其更改为:

R.id.myLayout
其中myLayout是您在*.xml文件中键入的内容:

android:id="@+id/myLayout"
这应该起作用:

int size = 150;
ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(size, size);

layoutParams.topToTop = R.id.myLayout;
layoutParams.bottomToBottom = R.id.myLayout;
layoutParams.leftToLeft = R.id.myLayout;
layoutParams.rightToRight = R.id.myLayout;
layoutParams.verticalBias = (float) 0.95;
layoutParams.horizontalBias = (float) 0.5;

circleImageView.setLayoutParams(layoutParams);

ConstraintLayout cLayout=findViewById(R.id.main_布局)


您可以共享您的布局吗?创建新布局时,需要克隆以前的constraintlayout.layoutparams。还要确保imageview的高度和宽度为0dp
int size = 150;
ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(size, size);

layoutParams.topToTop = R.id.myLayout;
layoutParams.bottomToBottom = R.id.myLayout;
layoutParams.leftToLeft = R.id.myLayout;
layoutParams.rightToRight = R.id.myLayout;
layoutParams.verticalBias = (float) 0.95;
layoutParams.horizontalBias = (float) 0.5;

circleImageView.setLayoutParams(layoutParams);
        TextView ev = new TextView(getApplicationContext());
        ev.setText(getString(R.string.not_found_name));
        ev.setTextSize(50);
        ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams( ConstraintLayout.LayoutParams.WRAP_CONTENT,
                ConstraintLayout.LayoutParams.WRAP_CONTENT);

        layoutParams.bottomToBottom = ConstraintSet.PARENT_ID;
        layoutParams.endToEnd = ConstraintSet.PARENT_ID;
        layoutParams.startToStart = ConstraintSet.PARENT_ID;
        layoutParams.topToTop = ConstraintSet.PARENT_ID;

        ev.setLayoutParams(layoutParams);
        cLayout.addView(ev);