0
点赞
收藏
分享

微信扫一扫

【移动应用开发实践案列】

雷亚荣 2022-03-27 阅读 83
android

计算器的实现

⚪页面布局代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#ffc0cb"
        tools:ignore="MissingConstraints">
<!--第一行-->
        <TextView
            android:id="@+id/txtresult"
            android:background="#79BFB9"
            android:layout_margin="4dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical|right"
            android:hint="显示结果"
            android:textSize="32sp"
            android:lines="5" />
<!--第二行-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_clear"
                android:onClick="calClick"
                android:layout_width="0dp"
                android:layout_height="80sp"
                android:layout_weight="1"
                android:textColor="#CF7E07"
                android:textSize="25sp"
                android:text="C"/>

            <Button
                android:id="@+id/btn_del"
                android:onClick="calClick"
                android:layout_width="0dp"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#B68B4C"
                android:layout_weight="2"
                android:text="DEL"/>

            <Button
                android:id="@+id/btn_div"
                android:onClick="calClick"
                android:layout_width="0dp"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:layout_weight="1"
                android:textColor="#B9C91D"
                android:text="÷"/>

        </LinearLayout>
<!--第三行-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_1"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="1"/>

            <Button
                android:id="@+id/btn_2"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="2"/>

            <Button
                android:id="@+id/btn_3"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="3"/>

            <Button
                android:id="@+id/btn_add"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:layout_weight="1"
                android:textColor="#B9C91D"
                android:text="+"/>

        </LinearLayout>
        <!--第四行-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_4"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="4"/>

            <Button
                android:id="@+id/btn_5"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="5"/>

            <Button
                android:id="@+id/btn_6"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="6"/>

            <Button
                android:id="@+id/btn_dec"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#B9C91D"
                android:layout_weight="1"
                android:text="-"/>

        </LinearLayout>

        <!--第五行-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_7"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="7"/>

            <Button
                android:id="@+id/btn_8"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="8"/>

            <Button
                android:id="@+id/btn_9"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="9"/>

            <Button
                android:id="@+id/btn_mul"
                android:onClick="calClick"
                android:layout_width="match_parent"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#B9C91D"
                android:layout_weight="1"
                android:text="×"/>

        </LinearLayout>
            <!--第六行-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btn_0"
                android:onClick="calClick"
                android:layout_width="0dp"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#0ECD16"
                android:layout_weight="1"
                android:text="0"/>

            <Button
                android:id="@+id/btn_dot"
                android:onClick="calClick"
                android:layout_width="0dp"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:textColor="#B9C91D"
                android:layout_weight="1"
                android:text="."/>

            <Button
                android:id="@+id/btn_equ"
                android:onClick="calClick"
                android:layout_width="0dp"
                android:layout_height="80sp"
                android:textSize="25sp"
                android:layout_weight="2"
                android:textColor="#B9C91D"
                android:text="="/>

        </LinearLayout>

    </LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>



⚪Java代码如下:

package com.example.helloandroid;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.style.TtsSpan;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Button btnAdd, btnDec, btnMul, btnDiv, btnEqu, btnClear, btnDel;//用于存放其他功能按钮
    private TextView txtResult;
    private StringBuffer digitA = new StringBuffer(), digitB = new StringBuffer();
    private boolean isChar = false;//标记是否按下运算符
    private int operator = 0;//默认运算符为+
    private boolean isDigitA = true;//标记第1个操作数,用于退格删除txtResult中内容

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                operator = 0; //运算符+
                isChar = true;
                isDigitA = false;
            }
        });
        btnDec.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                operator = 1;//运算符-
                isChar = true;
                isDigitA = false;
            }
        });
        btnMul.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                operator = 2;//运算符×
                isChar = true;
                isDigitA = false;
            }
        });
        btnDiv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                operator = 3;//运算符÷
                isChar = true;
                isDigitA = false;
            }
        });
        btnEqu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                float da = Float.parseFloat(digitA.toString());
                float db = Float.parseFloat(digitB.toString());
                switch (operator) {
                    case 0:
                        txtResult.setText(da + db + "");
                        break;
                    case 1:
                        txtResult.setText(da - db + "");
                        break;
                    case 2:
                        txtResult.setText(da * db + "");
                        break;
                    case 3:
                        txtResult.setText(da / db + "");
                        break;
                }
                isChar = true;
                isDigitA = true;

            }
        });
        btnClear.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                digitA = new StringBuffer();
                digitB = new StringBuffer();
                isChar = false;
                txtResult.setText("");
            }
        });
        btnDel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String temp = txtResult.getText().toString();
                if (isDigitA) {
                    digitA = new StringBuffer();

                    if (temp.length() > 0)
                        if (temp.length() == 1) {
                            temp = "0";
                        } else {
                            temp = temp.substring(0, temp.length() - 1);
                        }
                    txtResult.setText(temp);
                    digitA.append(txtResult.getText().toString());
                } else {
                    digitB = new StringBuffer();

                    if (temp.length() > 0)
                        if (temp.length() == 1) {
                            temp = "0";
                        } else {
                            temp = temp.substring(0, temp.length() - 1);
                        }
                    txtResult.setText(temp);
                    digitB.append(txtResult.getText().toString());
                }
            }
        });
    }

    void init() {
        btnAdd = (Button) this.findViewById(R.id.btn_add);
        btnDec = (Button) this.findViewById(R.id.btn_dec);
        btnMul = (Button) this.findViewById(R.id.btn_mul);
        btnDiv = (Button) this.findViewById(R.id.btn_div);
        btnEqu = (Button) this.findViewById(R.id.btn_equ);
        btnClear = (Button) this.findViewById(R.id.btn_clear);
        btnDel = (Button) this.findViewById(R.id.btn_del);
        txtResult = (TextView) this.findViewById(R.id.txtresult);
    }

    public void calClick(View view) {
        switch (view.getId()) {
            case R.id.btn_0:
                if (isChar) {//如果已经按过运算符,将显示结果区域清空,并将0
                    txtResult.setText("");
                    digitB.append("0");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("0");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_1:
                if (isChar) {
                    txtResult.setText("");
                    digitB.append("1");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("1");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_2:
                if (isChar) {
                    txtResult.setText("");
                    digitB.append("2");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("2");
                    txtResult.setText(digitA.toString());
                }

                break;
            case R.id.btn_3:
                if (isChar) {
                    txtResult.setText("");
                    digitB.append("3");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("3");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_4:

                if (isChar) {
                    txtResult.setText("");
                    digitB.append("4");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("4");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_5:

                if (isChar) {
                    txtResult.setText("");
                    digitB.append("5");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("5");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_6:

                if (isChar) {
                    txtResult.setText("");
                    digitB.append("6");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("6");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_7:
                if (isChar) {
                    txtResult.setText("");
                    digitB.append("7");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("7");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_8:
                if (isChar) {
                    txtResult.setText("");
                    digitB.append("8");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("8");
                    txtResult.setText(digitA.toString());
                }
                break;
            case R.id.btn_9:
                if (isChar) {
                    txtResult.setText("");
                    digitB.append("9");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append("9");
                    txtResult.setText(digitA.toString());
                }
                break;

            case R.id.btn_dot:
                if (isChar) {
                    txtResult.setText("");
                    digitB.append(".");
                    txtResult.setText(digitB.toString());
                } else {
                    digitA.append(".");
                    txtResult.setText(digitA.toString());
                }
                break;

        }



    }
}

在这里插入图片描述

高仿QQ登录界面的实现

⚪页面布局代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#1F83D2">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:id="@+id/rlayouttop">

            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_alignParentBottom="true"
                 android:layout_centerHorizontal="true"
                android:src="@mipmap/skin_about_brand"/>
        </RelativeLayout>
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/rlayoutmiddle"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="25dp"
            android:layout_below="@+id/rlayouttop"
            android:background="#fff">

            <EditText
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:id="@+id/edtUserName"
                android:layout_marginLeft="10dp"
                android:drawableLeft="@mipmap/login_icon_account"
                android:drawablePadding="5dp"
                android:background="@null"
                android:hint="请输入QQ号码"/>
            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignParentRight="true"
                android:scaleType="center"
                android:src="@mipmap/row_down"/>
        </RelativeLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/llmiddle"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_below="@+id/rlayoutmiddle"
            android:layout_marginTop="1dp"
            android:background="#ffff">

            <EditText
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:id="@+id/edtPWD"
                android:layout_marginLeft="10dp"
                android:drawableLeft="@mipmap/login_icon_password"
                android:drawablePadding="5dp"
                android:background="@null"
                android:hint="请输入QQ密码"
                android:inputType="numberPassword"/>
        </LinearLayout>

        <Button
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:id="@+id/btnLogin"
            android:layout_below="@+id/llmiddle"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="20dp"
            android:background="#8AD2F4"
            android:text="登录"
            android:textColor="#050505"
            android:textSize="24sp"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal"
            android:paddingTop="10dp"
            android:layout_marginTop="390dp">

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/btnLogin"
                android:text="记住密码"
                android:paddingLeft="10dp"
                android:textSize="20sp"
                android:textColor="#ffff"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/btnLogin"
                android:text="忘记密码"
                android:layout_alignRight="@+id/dtnLogin"
                android:textSize="20sp"
                android:layout_marginLeft="200dp"
                android:textColor="#ffff"
                tools:ignore="UnknownId" />

        </LinearLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:paddingBottom="10dp"
                android:text="还没有账号?立即注册>>"
                android:textColor="#ffff"/>
        </RelativeLayout>

    </RelativeLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

⚪Java代码如下:

package com.example.qq;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    private EditText edtUserName,edtPWD;
    private Button btnLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edtUserName = (EditText) this.findViewById(R.id.edtUserName);20
        edtPWD = (EditText) this.findViewById(R.id.edtPWD);
        btnLogin = (Button) this.findViewById(R.id.btnLogin);
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String sUserName=edtUserName.getText().toString();
                String sPWD=edtPWD.getText().toString();
                if(sUserName.equals("2021")&&sPWD.equals("2021")){
                    Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_LONG).show();
                }else {
                    Toast.makeText(MainActivity.this,"QQ号或密码错误,请重新输入!",Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

在这里插入图片描述

举报

相关推荐

0 条评论