1. 程式人生 > >Android-線性佈局的經典案例1-計算器

Android-線性佈局的經典案例1-計算器

目標效果:
styles.xml檔案內容如下:
<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    </style>
    <style name="BtnCal">
        <item name="android:textSize">24sp</item>
        <item name="android:paddingTop">25dp</item>
        <item name="android:paddingBottom">25dp</item>
    </style>
</resources>
x_layout.xml檔案內容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.administrator.mynsi2.LinearLayoutActivity">
    <!-- 垂直:vertical 水平:horizontal -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="計算器"
            android:background="#ccc"
            android:textSize="24dp"
            android:padding="10dp"/>
        <EditText
            android:id="@+id/tv_caltext"
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:background="#efefef"
            android:padding="5dp"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="4">
            <Button
                android:id="@+id/btn_cal_mc"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="MC"/>
            <Button
                android:id="@+id/btn_cal_madd"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="M+"/>
            <Button
                android:id="@+id/btn_cal_mminus"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="M-"/>
            <Button
                android:id="@+id/btn_cal_mr"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="MR"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="4">
            <Button
                android:id="@+id/btn_cal_c"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="C"/>
            <Button
                android:id="@+id/btn_cal_addminus"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="+/-"/>
            <Button
                android:id="@+id/btn_cal_ride"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="*"/>
            <Button
                android:id="@+id/btn_cal_except"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="/"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="4">
            <Button
                android:id="@+id/btn_cal_7"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="7"/>
            <Button
                android:id="@+id/btn_cal_8"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="8"/>
            <Button
                android:id="@+id/btn_cal_9"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="9"/>
            <Button
                android:id="@+id/btn_cal_minus"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="-"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="4">
            <Button
                android:id="@+id/btn_cal_4"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="4"/>
            <Button
                android:id="@+id/btn_cal_5"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="5"/>
            <Button
                android:id="@+id/btn_cal_6"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="6"/>
            <Button
                android:id="@+id/btn_cal_add"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                style="@style/BtnCal"
                android:text="+"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="4">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:layout_weight="3">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_weight="1">
                    <Button
                        android:id="@+id/btn_cal_1"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/BtnCal"
                        android:layout_weight="1"
                        android:text="1"
                        />

                    <Button
                        android:id="@+id/btn_cal_2"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/BtnCal"
                        android:layout_weight="1"
                        android:text="2"
                        />

                    <Button
                        android:id="@+id/btn_cal_3"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        style="@style/BtnCal"
                        android:text="3"
                        />
                </LinearLayout>
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_weight="3">
                    <Button
                        android:id="@+id/btn_cal_0"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        style="@style/BtnCal"
                        android:layout_weight="2"
                        android:text="0"
                        />

                    <Button
                        android:id="@+id/btn_cal_point"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        style="@style/BtnCal"
                        android:text="."
                        />
                </LinearLayout>
            </LinearLayout>
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1">
                <Button
                    android:id="@+id/btn_cal_equal"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="="
                    android:textSize="24sp"/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>