web-dev-qa-db-ja.com

Android-LinearLayoutのプログラムでLayout_Gravityを設定します

私は次の問題を抱えています:HorizontalScrollViewLinearLayoutを含む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を介して見つけたものすべてが機能しません。

ありがとう!

13
Ron

このようなことをしてください:

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

PDATE:これを行う別の方法:

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

            imageView.setLayoutParams(params);
36
Vipul Purohit

次のようにImageViewFrameLayoutに入れます。

余分なコードを削除しました

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

詳細 ここ

7
ClaireG

これはあなたのために働くと思います

FrameLayout.LayoutParams layoutParams = new ScrollView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
 layoutParams1.gravity(YourGravity);
yourImage.setLayoutParams(layoutParams);