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

Ron*_*Ron 12 java android position android-linearlayout layout-gravity

我有以下问题:我实现了一个HorizontalScrollView包含一个案例a 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>
Run Code Online (Sandbox Code Playgroud)

但我需要以layout_gravity编程方式设置.有没有人知道如何实现这一目标或知道不同的方式?我通过Google发现的所有内容都不适用于我这样的帖子.

谢谢!

Vip*_*hit 34

做这样的事情:

   LayoutParams lp = new LayoutParams();
   lp.gravity= Gravity.CENTER_HORIZONTAL; 
   myImg.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)

更新: 另一种方法:

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

            imageView.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)


Cla*_*reG 7

把这个ImageView放在FrameLayout这样的:

删除了额外的代码

ImageView image = new ImageView(mContext);
image.setLayoutParams(new FrameLayout.LayoutParams(width, height, gravity));
Run Code Online (Sandbox Code Playgroud)

更多信息在这里.

  • 不工作......但无论如何,为什么我要把imageview放在`FrameLayout`中并将FrameLayout.Params放在imageView而不是父级? (2认同)
  • 第三个参数不是“重力”,而是“重量”! (2认同)