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

标签 java android position android-linearlayout layout-gravity

我遇到了以下问题:我实现了一个 Horizo​​ntalScrollView,在一个例子中包含一个 LinearLayout 和一个 ImageView。在这种情况下,图像大约占屏幕宽度的 50%。所以我想把它居中。不幸的是,我发现使它居中的唯一方法是在 LinearLayout 上使用 layout_gravity="center"

这是我的 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。有没有人知道我如何实现这一点或知道不同的方法?我通过谷歌找到的所有东西都不适合我,比如 this post .

谢谢!

最佳答案

做这样的事情:

   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);

关于java - Android - 以编程方式为 LinearLayout 设置 Layout_Gravity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965784/

相关文章:

android - onRetainCustomNonConfigurationInstance 在 AndroidX 中已弃用

android - setText,进入横向时重置并锁定

java - 未在 JMS listner 非 Activity 类 android 中获取应用程序上下文

java - 在java中使用SuperCsv读取tsv文件时出现异常

java - 获取符合条件的流的第一个元素

html - CSS z 索引 : "position: relative;" element on top of "position: fixed;" element - It will not work

vb.net - 显示一个以表单为中心的 MessageBox

html - 无论视口(viewport)大小或内容如何,​​如何将页脚置于页面底部?

java - 从父 Activity 多次调用 map Activity 并自动存储数据

java - 如何在按住 KeyEvent 时只触发一次?