【Android】【移动应用开发】基础案列

跑马灯效果

⚪页面布局代码如下:

<TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#55333333"
            android:ellipsize="marquee"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:marqueeRepeatLimit="marquee_forever"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:singleLine="true"
            android:text="欢迎注册卡特曼大学计算机学院智慧校园平台,注册成功后,你可以方便获得校内咨询!"
            android:textColor="#FFFF00"
            android:textSize="20dp"/>

在这里插入图片描述
动态向左移动


计算器的实现

⚪页面布局代码如下:

<?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:
60个Android开发精典案例 Android软件源码: 2-1(Activity生命周期) 3-1(Button与点击监听器) 3-10-1(列表之ArrayAdapter适配) 3-10-2(列表之SimpleAdapter适配) 3-11(Dialog对话框) 3-12-5(Activity跳转与操作) 3-12-6(横竖屏切换处理) 3-3(ImageButton图片按钮) 3-4(EditText文本编辑) 3-5(CheckBox与监听) 3-6(RadioButton与监听) 3-7(ProgressBar进度条) 3-8(SeekBar 拖动条) 3-9(Tab分页式菜单) 4-10(可视区域) 4-11-1(Animation动画) 4-11-2-1(动态位图) 4-11-2-2(帧动画) 4-11-2-3(剪切图动画) 4-13(操作游戏主角) 4-14-1(矩形碰撞) 4-14-2(圆形碰撞) 4-14-4(多矩形碰撞) 4-14-5(Region碰撞检测) 4-15-1(MediaPlayer音乐) 4-15-2(SoundPool音效) 4-16-1(游戏保存之SharedPreference) 4-16-2(游戏保存之Stream) 4-3(View游戏框架) 4-4(SurfaceView游戏框架) 4-7-1(贝塞尔曲线) 4-7-2(Canvas画布) 4-8(Paint画笔) 4-9(Bitmap位图渲染与操作) 5-1(飞行射击游戏实战) 6-1(360°平滑游戏摇杆) 6-10-1(Socket协议) 6-10-2(Http协议) 6-11(本地化与国际化) 6-2(多触点缩放位图) 6-3(触屏手势识别) 6-4(加速度传感器) 6-5(9patch工具)] 6-6(截屏) 6-8(游戏视图与系统组件) 6-9(蓝牙对战游戏) 7-10-1(遍历Body) 7-10-2(Body的m_userData) 7-11(为Body施加力) 7-12(Body碰撞监听) 7-13-1(距离关节) 7-13-2(旋转关节) 7-13-3(齿轮关节) 7-13-4(滑轮关节) 7-13-5-1(通过移动关节移动Body) 7-13-5-2(通过移动关节绑定两个Body动作) 7-13-6(鼠标关节-拖拽Body) 7-14(AABB获取Body) 7-4(Box2d物理世界) 7-5在物理世界中添加矩形) 7-7(添加自定义多边形) 7-9(在物理世界中添加圆形) 8-1(迷宫小球) 8-2(堆房子)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字小萌新♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值