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

Ash*_*ari 5 android android-constraintlayout

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

代码

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);
Run Code Online (Sandbox Code Playgroud)

小智 11

ConstraintLayout cLayout = findViewById(R.id.main_layout);

        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);
Run Code Online (Sandbox Code Playgroud)


Pra*_*ant 3

尝试一下,使用ConstraintSet您可以轻松地以编程方式将视图渲染到ConstraintLayout的中心。

   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageView imageView = new ImageView(this);
    imageView.setImageResource(R.mipmap.ic_launcher);
    imageView.setId(R.id.imageview);

    ConstraintLayout myLayout = new ConstraintLayout(this);
    myLayout.setBackgroundColor(Color.BLUE);

    myLayout.addView(imageView);
    setContentView(myLayout);

    ConstraintSet set = new ConstraintSet();

    set.constrainHeight(imageView.getId(),
            ConstraintSet.WRAP_CONTENT);
    set.constrainWidth(imageView.getId(),
            ConstraintSet.WRAP_CONTENT);

    set.connect(imageView.getId(), ConstraintSet.LEFT,
            ConstraintSet.PARENT_ID, ConstraintSet.LEFT, 0);
    set.connect(imageView.getId(), ConstraintSet.RIGHT,
            ConstraintSet.PARENT_ID, ConstraintSet.RIGHT, 0);
    set.connect(imageView.getId(), ConstraintSet.TOP,
            ConstraintSet.PARENT_ID, ConstraintSet.TOP, 0);
    set.connect(imageView.getId(), ConstraintSet.BOTTOM,
            ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 0);

    set.applyTo(myLayout);
}
Run Code Online (Sandbox Code Playgroud)