使用layout_weights时,图像视图不居中

时间:2012-07-03 03:50:10

标签: android android-layout android-linearlayout android-imageview

我正在尝试制作一个水平菜单栏,但是出于某些原因,当我使用权重时,它们不会水平对齐,有什么建议吗?

<LinearLayout
    android:id="@+id/bottombuttonslayout"
    android:layout_width="match_parent"
    android:layout_height="58dp"
    android:layout_alignParentBottom="true"
    android:weightSum="1.0" >

<LinearLayout
    android:id="@+id/listSlotBox"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight=".20"
    android:gravity="center" >

    <ImageView
        android:id="@+id/listSlot"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="false"
        android:background="@drawable/list" />
</LinearLayout>

<LinearLayout
    android:id="@+id/leftArrorSlotBox"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight=".20" >

    <ImageView
        android:id="@+id/leftArrowSlot"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="false"
        android:background="@drawable/left_arrow" />
</LinearLayout>

<LinearLayout
    android:id="@+id/playSlotBox"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight=".20" >

    <ImageView
        android:id="@+id/playSlot"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="false"
        android:background="@drawable/playing" />
</LinearLayout>

<LinearLayout
    android:id="@+id/rightArrowSlotBox"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight=".20" >

    <ImageView
        android:id="@+id/rightArrowSlot"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="false"
        android:background="@drawable/right_arrow" />
</LinearLayout>

这就是它的样子,它们是垂直对齐的。不是横向的:

enter image description here

修改

这是遵循第一个建议:

enter image description here

1 个答案:

答案 0 :(得分:0)

每个图片视图都需要android:gravity="center"

你正在使用包含线性布局的中心...我不明白你为什么要使用它们...你应该使用一个,如下所示:

<LinearLayout 
    android:orientation="horizontal"
    android:id="@+id/bottombuttonslayout" 
    android:layout_width="match_parent" 
    android:layout_height="58dp" 
    android:layout_alignParentBottom="true" > 
    <ImageView 
        android:id="@+id/listSlot" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:adjustViewBounds="false" 
        android:background="@drawable/list"
        android:gravity="center"/>
    <ImageView 
        android:id="@+id/leftArrowSlot" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:adjustViewBounds="false" 
        android:background="@drawable/left_arrow"
        android:gravity="center" 
        android:layout_weight="1" /> 
    <ImageView 
        android:id="@+id/playSlot" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:adjustViewBounds="false" 
        android:background="@drawable/playing"
        android:gravity="center" 
        android:layout_weight="1" /> 
    <ImageView 
        android:id="@+id/rightArrowSlot" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:adjustViewBounds="false" 
        android:background="@drawable/right_arrow"
        android:gravity="center" 
        android:layout_weight="1" /> 
</LinearLayout>