Android-以编程方式为LinearLayout设置Layout_Gravity


问题内容

我遇到以下问题:我实现了一个HorizontalScrollView在一个案例中包含LinearLayout和的ImageView。在这种情况下,图像约为屏幕宽度的50%。所以我想居中。不幸的是,我发现居中的唯一方式是,使用layout_gravity="center"LinearLayout

这是我的xml:

<HorizontalScrollView
            android:layout_gravity="center"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

        <ImageView                    
                android:src="@drawable/myImg"
                android:layout_width="wrap_content"
                android:adjustViewBounds="true"
                android:layout_height="150dp"/>

        </LinearLayout>

    </HorizontalScrollView>

但是我需要以layout_gravity编程方式进行设置。有人知道我该如何实现这一目标或以其他方式知道吗?我在Google上找到的所有内容都不适用于此帖子。

谢谢!


问题答案:

做这样的事情:

   LayoutParams lp = new LayoutParams();
   lp.gravity= Gravity.CENTER_HORIZONTAL; 
   myImg.setLayoutParams(lp);

更新: 另一种方法:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            params.weight = 1.0f;
            params.gravity = Gravity.CENTER;

            imageView.setLayoutParams(params);