如何在父布局的中心定位充气布局

时间:2013-08-06 19:11:32

标签: android android-layout android-inflate layoutparams

我在主布局中给布局(imageviewlayout)充气。我在父视图的底部得到子视图。如何将子视图对齐在Mainlayout的中心。我已经读过它可以完成使用Layoutparams。可以告诉你如何将子视图对齐在主布局的中心。

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>

2 个答案:

答案 0 :(得分:1)

使用android:layout_gravity="center"

请参阅LayoutParams

  

将对象放在其容器的中心垂直方向   和横轴,不改变它的大小。

PS:由于您在子视图中将ImageView与容器包装在一起,我相信您应该在包装器中添加重力属性。这样“容器”就是你的main,而不是子视图的包装器。

答案 1 :(得分:0)

我通过在main.xml中添加一个膨胀布局容器来解决这个问题

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