14

我遇到了以下问题:我实现了 aHorizontalScrollView在一种情况下包含 aLinearLayout和 a 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编程方式设置。有人知道我如何实现这一目标或知道不同的方式吗?我通过谷歌找到的所有东西都不像这篇文章那样对我有用。

谢谢!

4

3 回答 3

38

做这样的事情:

   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);
于 2013-07-31T09:01:15.997 回答
8

ImageView像这样放入FrameLayout

删除了额外的代码

ImageView image = new ImageView(mContext);
image.setLayoutParams(new FrameLayout.LayoutParams(width, height, gravity));

更多信息在这里

于 2013-07-31T09:27:38.187 回答
1

我想,这个对你有用

FrameLayout.LayoutParams layoutParams = new ScrollView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
 layoutParams1.gravity(YourGravity);
yourImage.setLayoutParams(layoutParams);
于 2016-11-10T14:25:13.043 回答