如何通过java代码在android中将布局中心化为垂直?

如何通过java代码在android中将布局中心化为垂直?,android,Android,朋友们 我想设置布局的android:layout\u centerVertical=“true”属性 通过java编写的一个图像代码 有谁能指导我如何做到这一点。这是我的密码 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); params.height = (int)totalHeight; im

朋友们

我想设置布局的android:layout\u centerVertical=“true”属性 通过java编写的一个图像代码

有谁能指导我如何做到这一点。这是我的密码

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

params.height = (int)totalHeight;

img.setLayoutParams(params);
我试过使用setScaleType(ScaleType.FIT_CENTER),但没有用


任何帮助都将受到感谢

如果我错了,请纠正我的错误,但这听起来像是在试图设置布局内部图像的对齐方式(或位置方向)?为此,需要设置包含对齐视图的布局的重力特性

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

    RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.FILL_PARENT, 
            RelativeLayout.LayoutParams.WRAP_CONTENT);

    ImageView imageView = new ImageView(this);
    imageView.setLayoutParams(params);
    imageView.setImageBitmap(bitmap);

    layout.setGravity(Gravity.CENTER_VERTICAL | Gravity.TOP);
    layout.addView(imageView);

在本例中,我以编程方式将图像添加到布局资源中的RelativeLayout,添加ImageView,并将其对齐,以便将其放置在顶部垂直中心位置

在新的SDK中没有重力。垂直中心,但是你可以用
layout.setGravity(Gravity.CENTER)

试试这个代码

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams
          ((int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT);

params.addRule(RelativeLayout.CENTER_VERTICAL);

img.setLayoutParams(params);

我更喜欢这个答案,因为它不会影响父视图的任何其他子视图。这比RelativeLayout中接受的答案要好!