我遇到了以下问题:我实施了一个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找到的所有内容都不适用于this post。
谢谢!
答案 0 :(得分:34)
做这样的事情:
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);
答案 1 :(得分:7)
将ImageView
放在FrameLayout
中,如下所示:
删除了额外的代码
ImageView image = new ImageView(mContext);
image.setLayoutParams(new FrameLayout.LayoutParams(width, height, gravity));
更多信息here。
答案 2 :(得分:1)
我认为,这个适用于你
FrameLayout.LayoutParams layoutParams = new ScrollView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams1.gravity(YourGravity);
yourImage.setLayoutParams(layoutParams);