0

メイン レイアウトでレイアウト (imageviewlayout) を膨張させています。親ビューの下部に子ビューを取得しています。子ビューを Mainlayout の中央に配置するにはどうすればよいですか。子ビューをメイン レイアウトの中央に配置する方法を教えてください。

LinearLayout main = (LinearLayout)findViewById(R.id.sendlayout);
View childview = getLayoutInflater().inflate(R.layout.imageviewlayout, main,false);          
main.addView(childview);

これが私のimageviewlayout(子)です:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"
    android:orientation="vertical" >
     <ImageView
        android:id="@+id/thumbnailImage"
        android:layout_width="250px"
        android:layout_height="250px"
        android:layout_gravity="center_horizontal"
        android:scaleType="fitCenter"
        android:src="@drawable/camera" />

</LinearLayout>
4

2 に答える 2

1

を使用しandroid:layout_gravity="center"ます。

LayoutParamsを参照してください。

サイズを変更せずに、縦軸と横軸の両方でコンテナーの中央にオブジェクトを配置します。

PS:ImageView子ビューでコンテナをラップするので、ラッパーに重力プロパティを追加する必要があると思います。そうすれば、「コンテナ」はあなたmainのものであり、子ビューのラッパーではありません。

于 2013-08-07T17:07:30.253 に答える
1

main.xml に inflaterlayout コンテナーを追加することでこれを解決しました

  <LinearLayout 
    android:id="@+id/inflaterContainerLL" 
    android:layout_height="wrap_content"    
    android:layout_width="match_parent" 
    android:orientation="vertical">   
</LinearLayout>

main.xml アクティビティで inflaterContainerLL を参照しました

 LinearLayout main = (LinearLayout)findViewById(R.id.inflaterContainerLL);

 View vchild = getLayoutInflater().inflate(R.layout.imageViewlayout, main,false);

 main.addView(vchild);
于 2013-08-13T00:02:20.383 に答える