Ron Ron - 26 days ago 13
Android Question

Android - Set Layout_Gravity programmatically for LinearLayout

I've got the following problem: I implemented a

HorizontalScrollView
which contains in one case a
LinearLayout
and an
ImageView
. In this case the image is about 50% of the screen width. So I want to center it. Unfortunately the only way I found to center it is, to use
layout_gravity="center"
on the
LinearLayout
.

Here's my 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>


But I need to set the
layout_gravity
programmatically. Does anybody has an idea how I can achieve this or knows a different way? All the things I found via Google are not working for me like this post.

Thanks!

Answer

Do somethings like this :

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

UPDATE : Another way to do this :

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

            imageView.setLayoutParams(params);
Comments