Android 如何使所有子视图位于水平线布局的垂直中心,向其添加视图后重心是垂直的

Android 如何使所有子视图位于水平线布局的垂直中心,向其添加视图后重心是垂直的,android,Android,这是一个水平线性布局,我将其重心设置为垂直中心,然后向线性布局添加两个视图,第一个视图的高度比另一个视图大,结果是第二个视图与第一个视图的顶部对齐,而不是在线性布局的垂直中心。 如何使所有子视图位于垂直中心,有什么想法吗 这是我的密码: Context context = getActivity(); mPictureContainer = new LinearLayout(context); mPictureContainer.setBackgroundColor(0xffffffff); m

这是一个水平
线性布局
,我将其重心设置为
垂直中心
,然后向
线性布局
添加两个视图,第一个视图的高度比另一个视图大,结果是第二个视图与第一个视图的顶部对齐,而不是在
线性布局
的垂直中心。 如何使所有子视图位于垂直中心,有什么想法吗

这是我的密码:

Context context = getActivity();
mPictureContainer = new LinearLayout(context);
mPictureContainer.setBackgroundColor(0xffffffff);
mPictureContainer.setGravity(Gravity.CENTER_VERTICAL);
mPictureContainer.setOrientation(LinearLayout.HORIZONTAL);
int leftRightMargin = getResources().getDimensionPixelSize(R.dimen.leftRightMargin);
mPictureContainer.setPadding(leftRightMargin, 0, leftRightMargin, 0);
//...
mAddPicBtn = new ImageView(context);
mAddPicBtn.setLayoutParams(new LinearLayout.LayoutParams(Utils.dip2px(77f), Utils.dip2px(77f)));
mAddPicBtn.setScaleType(ScaleType.CENTER_CROP);
mAddPicBtn.setImageDrawable(StateListFactory.createStateListDrawable(R.drawable.add_prs, -1, R.drawable.add));
//...
mPictureContainer.removeAllViews();
ArrayList<String> pictures = (ArrayList<String>) data.getSerializableExtra("pictures");
int size = pictures.size();
for (int i = 0; i < size; i++) {
    String path = pictures.get(i);
    final View view = LayoutInflater.from(getActivity()).inflate(R.layout.status_pic_item, mPictureContainer, false);
    view.setTag(path);
    ImageView imageView = (ImageView) view.findViewById(R.id.picture);
    ImageView delPicBtn = (ImageView) view.findViewById(R.id.delPicBtn);
    delPicBtn.setImageDrawable(StateListFactory.createStateListDrawable(R.drawable.del_prs, -1, R.drawable.del));           
    delPicBtn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            mPictureContainer.removeView(view);
            if (mPictureContainer.getChildCount() < 4 && mAddPicBtn.getParent() != mPictureContainer) {
                mPictureContainer.addView(mAddPicBtn);
            }
        }
    });
    mPictureContainer.addView(view, i);
    ImageLoader.loadImage(imageView, "file://" + path);
}
if (mPictureContainer.getChildCount() < 4) {
    mPictureContainer.addView(mAddPicBtn);
}
下面是截图:


你也可以发布你的代码吗?为什么你不使用RelativeLayout进行这种表示?@Sharj,我已经发布了我的代码和截图。很抱歉这么晚才回复。@RobinHood,我以编程方式设置水平:
mPictureContainer.setOrientation(LinearLayout.horizontal)我不确定。但我认为你的观点是垂直居中的。只是带有X的图像有一些空白。尝试使用开发人员选项“绘制视图边界”进行检查。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="81dp"
    android:layout_height="81dp"
    android:layout_marginRight="3dp" >

    <ImageView
        android:id="@+id/picture"
        android:layout_width="77dp"
        android:layout_height="77dp"
        android:layout_alignParentBottom="true"
        android:scaleType="centerCrop" />

    <ImageView
        android:id="@+id/delPicBtn"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_alignParentRight="true"
        android:clickable="true" />

</RelativeLayout>