我有三个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>
答案 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。
这很可能意味着此布局的比例与其拉伸的原因无关。