计算器界面布局
(图一)
(图二)
使用linearlayout布局实现图一所示计算器布局。
计算器界面布局实现
(图三)
在使用线性布局时,先要理解水平布局和垂直布局;水平布局是指控件相互间在空间上都是水平方向对齐,例如图2所示”7”,”8”,”9”,”-“;垂直布局是指控件相互间在空间上都是垂直方向对齐 ,例如图2所示(”7”,”8”,”9”,”-“;)和(”4”,”5”,”6”,”+”;)。
Android LinearLayout支持布局嵌套,所谓布局嵌套就是指在一个布局里面还可以包含其他布局关系,例如在图三中的最后一个黄颜色框布局层里面还嵌套了3个棕颜色布局层。
图三所示计算器布局可分解为:一个垂直布局(绿框)和五个水平布局(黄框)
其中五个水平布局嵌套在垂直布局中;由上往下的第五个黄框中嵌套了垂直布局层和水平布局层,在垂直布局层层中又嵌套了2个水平布局层(”1”“2”“3”)和(”0”“.”)。如图四所示。
(图四)
计算器界面布局代码(xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="center_vertical|right"
android:inputType="number"
android:text="0"
android:textAlignment="gravity"
android:textSize="64dp"
android:textStyle="italic" >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="c"
android:textSize="36dp" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="÷"
android:textSize="36dp" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="×"
android:textSize="36dp" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="←"
android:textSize="36dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7"
android:textSize="36dp" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8"
android:textSize="36dp" />
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9"
android:textSize="36dp" />
<Button
android:id="@+id/button8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-"
android:textSize="36dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<Button
android:id="@+id/button9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4"
android:textSize="36dp" />
<Button
android:id="@+id/button10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5"
android:textSize="36dp" />
<Button
android:id="@+id/button11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6"
android:textSize="36dp" />
<Button
android:id="@+id/button12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+"
android:textSize="36dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2" >
<LinearLayout
android:layout_width="268dp"
android:layout_height="256dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="269dp"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/button13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1"
android:textSize="36dp" />
<Button
android:id="@+id/button14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2"
android:textSize="36dp" />
<Button
android:id="@+id/button15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3"
android:textSize="36dp" />
</LinearLayout>
<LinearLayout
android:layout_width="269dp"
android:layout_height="match_parent" >
<Button
android:id="@+id/button16"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="0"
android:textSize="36dp" />
<Button
android:id="@+id/button17"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="."
android:textSize="36dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="116dp" >
<Button
android:id="@+id/button18"
android:layout_width="88d
"
android:layout_height="115dp"
android:text="="
android:textSize="36dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>