计算器应用程序的线性布局

时间:2011-07-12 04:04:36

标签: android android-layout android-linearlayout

我的线性布局的最后一行出了问题。我希望0与所有其他数字的大小相同,然后该行中的其他4个按钮如下所示(这是使用绝对布局):

Correct Look我无法发布图片,因此这是一个小型的

但是使用线性布局,这是我需要使用的所以它在所有屏幕尺寸上看起来都是正确的,我不能让最后一行看起来正确。问题是图像,它们不允许我正确缩放按钮。我确信我可以通过缩小图像来修复它,但我希望它们保持这么大,只需使按钮更薄。有谁知道这是怎么做到的吗?重量似乎不起作用。

Needs changing我无法发布图片,因此这是一个小型的

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1">

    <TextView
        android:id="@+id/widget86"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/widget40"
        android:gravity="right"
        android:textSize="40sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1">

    <Button
        android:id="@+id/widget34"
        android:text="7"
        android:gravity="center_vertical|center_horizontal" 
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget35"
        android:gravity="center_vertical|center_horizontal" 
        android:text="8"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget37"
        android:gravity="center_vertical|center_horizontal" 
        android:text="9"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1">

    <Button
        android:id="@+id/widget31"
        android:gravity="center_vertical|center_horizontal" 
        android:text="4"
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget32"
        android:gravity="center_vertical|center_horizontal" 
        android:text="5"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget33"
        android:gravity="center_vertical|center_horizontal" 
        android:text="6"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1">

    <Button
        android:id="@+id/widget28"
        android:gravity="center_vertical|center_horizontal" 
        android:text="1"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget29"
        android:gravity="center_vertical|center_horizontal" 
        android:text="2"
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/widget30"
        android:gravity="center_vertical|center_horizontal" 
        android:text="3"
        android:textSize="35sp"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>

</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1">

    <Button
        android:id="@+id/widget38"
        android:gravity="center_vertical|center_horizontal" 
        android:text="0"
        android:layout_width="wrap_content"
        android:textSize="35sp"
        android:layout_height="fill_parent"
        android:layout_weight="30"/>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="30">

        <Button
            android:id="@+id/widget72"
                android:gravity="center_vertical|center_horizontal" 
                android:text="R"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:textSize="35sp"
                android:layout_weight="1"/>

        <Button
                android:id="@+id/widget73"
                android:gravity="center_vertical|center_horizontal" 
                android:text="Z"
                android:layout_width="wrap_content"
                android:textSize="35sp"
                android:layout_height="fill_parent"
                android:layout_weight="1"/>

            <Button
                android:id="@+id/widget70"
                android:gravity="center_vertical|center_horizontal" 
                android:layout_width="wrap_content"
                android:drawableBottom="@drawable/back"
                android:textSize="35sp"
                android:layout_height="fill_parent"
                android:layout_weight="1"/>

            <Button
                android:id="@+id/widget39"
                android:gravity="center_vertical|center_horizontal" 
                android:textSize="35sp"
                android:drawableBottom="@drawable/search"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"/>

     </LinearLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

最后一行显然是空间不足。尝试使用TableLayout或RelativeLayout。但是也使用它们,你可能会有空间问题。

答案 1 :(得分:0)

Last LinearLayout由两个对象组成:Button和LinearLayout。 您希望它被划分:1个单位用于按钮,2个单位用于LL。所以你应该设置按钮layout_weight =“1”和LL layout_weight =“2”。设置layout_width =“fill_parent”(或“0dp” - 应该与重量相同,以提供适当的重量)。

您还可以将“R”和“Z”设置为一个LL,将“箭头”,“搜索”设置为第二个LL。然后你将有三个相同大小的对象,所以将layout_weight =“1”放到每个对象上。

以下是有关使用权重参数的文章:http://developer.android.com/resources/articles/layout-tricks-efficiency.html