0

我在主布局中膨胀了一个布局(imageviewlayout)。我在父视图的底部获取子视图。如何在 Mainlayout 的中心对齐子视图。我已经读过它可以使用 Layoutparams 来完成。你能告诉我如何在主布局的中心对齐子视图。

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

这是我的 imageviewlayout(child):

<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

我通过在 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 回答
1

使用android:layout_gravity="center".

请参阅LayoutParams

将对象放在其容器的垂直和水平轴中心,不改变其大小。

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

于 2013-08-07T17:07:30.253 回答