将图像置于列中心

时间:2011-04-28 17:35:45

标签: android

我有三个ToggleButton元素,每个元素都是一个50x70像素的图像。我希望这些图像以页面中的列为中心(即,有三列,每列占页面宽度的1/3,每个列都有一个水平居中的图像),但是如果我使用LinearLayout或TableLayout图像被拉伸到每个页面宽度的33%。我该怎么办?

        <LinearLayout android:orientation="horizontal"
        android:id="@+id/buttonTable" android:layout_width="fill_parent"
        android:layout_below="@+id/tv_people" android:layout_height="wrap_content"
        android:layout_weight="1">
        <ToggleButton android:id="@+id/person1Button"
            android:gravity="center_horizontal" android:layout_weight="1"
            android:layout_width="51px" android:layout_height="68px"
            android:background="@drawable/person1_button" android:textOn=""
            android:textOff=""></ToggleButton>

        <ToggleButton android:id="@+id/person2Button"
            android:gravity="center_horizontal" android:layout_weight="1"
            android:layout_width="51px" android:layout_height="68px"
            android:background="@drawable/person2_button" android:textOn=""
            android:textOff=""></ToggleButton>

        <ToggleButton android:id="@+id/person3Button"
            android:gravity="center_horizontal" android:layout_weight="1"
            android:layout_width="51px" android:layout_height="68px"
            android:background="@drawable/person3_button" android:textOn=""
            android:textOff=""></ToggleButton>
    </LinearLayout>

2 个答案:

答案 0 :(得分:4)

按钮缩放到屏幕的1/3只是因为android:layout_weight="1"的优先级高于android:layout_width="51px"。为避免这种情况,您可以尝试将每个ToggleButton添加到自己的LinearLayout。如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal"
    android:id="@+id/buttonTable" 
    android:layout_width="fill_parent"
    android:layout_below="@+id/tv_people" 
    android:layout_height="wrap_content">
    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_weight="1">
        <ToggleButton android:id="@+id/person1Button"
            android:layout_width="51px" 
            android:layout_height="68px"
            android:textOn=""
            android:textOff=""/>
    </LinearLayout>
    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_weight="1">
        <ToggleButton android:id="@+id/person2Button"
            android:layout_width="51px" 
            android:layout_height="68px"
            android:textOn=""
            android:textOff=""/>
    </LinearLayout>
    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_weight="1">
        <ToggleButton android:id="@+id/person3Button"
            android:layout_width="51px"
            android:layout_height="68px"
            android:textOn=""
            android:textOff=""/>
    </LinearLayout>
</LinearLayout>

答案 1 :(得分:0)

这个布局代码对我有用......(注意:这是你的代码)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" android:gravity="center_horizontal"
  android:layout_height="wrap_content" android:orientation="horizontal">
        <ToggleButton android:id="@+id/person1Button"
            android:gravity="center_horizontal" android:layout_weight="1"
            android:layout_width="51px" android:layout_height="68px"
            android:textOn=""
            android:textOff=""></ToggleButton>

        <ToggleButton android:id="@+id/person2Button"
            android:gravity="center_horizontal" android:layout_weight="1"
            android:layout_width="51px" android:layout_height="68px"
            android:textOn=""
            android:textOff=""></ToggleButton>

        <ToggleButton android:id="@+id/person3Button"
            android:gravity="center_horizontal" android:layout_weight="1"
            android:layout_width="51px" android:layout_height="68px"
            android:textOn=""
            android:textOff=""></ToggleButton>
</LinearLayout>

它在顶部显示3个切换按钮,并在顶部均匀显示它们,每个按钮占据屏幕的1/3。

这很可能意味着此布局的比例与其拉伸的原因无关。