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);