【Android】安卓野路子学习项目之Android计算器(一)——界面布局

本文记录了使用Android Studio创建一个计算器应用的过程,包括新建工程、界面结构划分、布局代码填充,涉及输入显示、结果展示和按键输入部分的设计。通过创建圆角矩形和backspace图形按键,实现了计算器的基本界面效果。
摘要由CSDN通过智能技术生成

前言

此篇文章仅作为我的学习总结,结合我在学校所学,并参考B站up主Ezralin的视频边学边做,文章末尾附上原视频链接,在此也感谢up的视频,让我学会了很多的android知识。

圆角矩形参考站内作者:jackiesky1206的文章

使用软件:Android studio 的 2022.3.1 Patch 1 版本

一、新建工程

点击“New Project”新建一个项目文件

在新窗口中选择“Empty Views Activity”并点击“Next”

然后修改“Name”为“CalculatorSecon”,修改项目的保存路径(save location)此处我的项目路径为D:\AndroidProject\CalculatorSecon 然后修改“Language”为“Java”最后 点击Finish。到此新建工程完成。(因为我使用的是Android Studio 的 2022.3.1 版本,所以新建项目与up视频中的不同)

新建项目完成之后,现实如下:

二、结构划分

up的视频中将计算器界面分为了三部分从上到下依次为:

输入显示部分

结果显示部分

按键输入部分

三、布局代码填充

接下来开始写代码的布局,首先先点击“activity_main.xml”文件然后点击“Split”,如果找不到“activity_main.xml”文件,也可以打开左侧项目结构栏res→layout→activity_main.xml

Tips:接下来的activity_main.xml的主体代码将分段展示,若看不太懂结构的同学可直接跳转至第四部分完整代码。

(1)输入显示部分

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <!--输入显示区-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:background="#a8d67f"
        android:gravity="bottom|right"
        android:padding="10dp"
        android:text="0"
        android:textColor="@color/white"
        android:textSize="30sp" />

(2)结果显示部分

 <!--结果显示区-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#72b780"
        android:gravity="bottom|right"
        android:padding="10dp"
        android:text="0"
        android:textColor="@color/white"
        android:textSize="30sp" />

(3)按键输入部分

<!--按键输入区-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4">
        <!--左侧按键区-->
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:background="#fefefe"
            android:orientation="vertical">

            <!--按键第一行-->

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:padding="10dp"
                android:background="@drawable/circle_rectangle">

                <Button
                    android:id="@+id/clearTextView"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="AC"
                    android:textSize="30sp"
                    android:layout_marginRight="10dp"
                    android:textColor="@android:color/darker_gray"
                    android:background="@android:color/transparent"
                    />

                <ImageButton
                    android:id="@+id/backspace"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:src="@drawable/backspace"
                    android:background="@android:color/transparent"
                    />

                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:text="%"
                    android:textSize="30sp"
                    android:layout_marginLeft="10dp"
                    android:textColor="@android:color/darker_gray"
                    android:background="@android:color/transparent"
                    />

            </LinearLayout>

            <!--按键第二行-->

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:padding="10dp">

                <Button
                    android:id="@+id/button_one"
Android中设计一个简单的计算器界面,通常会涉及XML布局文件用于创建UI元素,以及Activity或Fragment类处理用户输入和计算逻辑。以下是一个简化的步骤和关键代码片段: 1. **XML布局文件 (activity_calculator.xml)** ```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"> <EditText android:id="@+id/display" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" /> <!-- 数字、运算符按钮 --> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="4"> <Button android:id="@+id/button_0" android:text="0" ... /> <!-- 添加其他数字和运算符按钮 --> </GridLayout> <!-- 清除、等于、加减乘除等按钮 --> <Button android:id="@+id/button_clear" android:text="C" ... /> <Button android:id="@+id/button_equal" android:text="=" ... /> <!-- 添加其他运算符按钮 --> </LinearLayout> ``` 2. **Activity或Fragment类** ```java public class CalculatorActivity extends AppCompatActivity { private EditText display; // 其他按钮变量... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); display = findViewById(R.id.display); Button buttonClear = findViewById(R.id.button_clear); buttonClear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { display.setText(""); } }); // 为其他按钮添加点击事件处理器,处理数字、运算符的输入和计算 } // 处理用户的输入和计算逻辑,例如: public void onButtonClick(String buttonText) { if (buttonText.equals("+")) { // 执行加法操作 } else if (buttonText.equals("-")) { // 执行减法操作 } else if (buttonText.equals("=")) { // 计算并显示结果 } } } ``` 这只是一个基本框架,实际应用中可能需要更复杂的逻辑来处理错误处理、历史记录保存等功能。此外,还可以考虑使用`NumberFormatter`或者自定义的`TextView`来进行数值格式化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值