为Android设备创建计算器项目示例

2021年5月11日14:40:20 发表评论 742 次浏览

这篇文章介绍了如何创建计算器应用程序, 尤其是有助于为Android设备提供具有竞争力的编码。创建的apk可用于在不同设备上安装该应用程序。该项目是为入门级android程序员设计的。

计算器应用

  • 计算器可以处理任意大数
  • 实施算术运算:+, -, *, /
  • 实现的布尔运算:和, 或不是
  • 原始性检查, 查找mod, 指数, GCD操作也已实施

你还需要Android Studio来构建和调试应用程序。

关于界面

首先, 我们将创建应用程序的GUI。 Android让我们将设计阶段与其他工作分开, 从而简化了我们的工作。布局用于创建在Android设备上打开应用程序时看到的屏幕。你通常看到的每个屏幕都有一个不同的布局文件和一个不同的Java文件来处理与该屏幕相关的交互(也称为用户界面), 它们共同构成了android中的一项活动。布局设计器包含大多数简单的小部件, 只需拖放即可布置, 甚至可以从GUI设置这些属性的值。

  • 我们的计算器应用程序的界面将包含一个网格布局将包含所有按钮。该按钮包括10个数字按钮(0-9), 用于算术, 布尔和其他操作的按钮。
    还有更多的小部件来显示文本, 称为文字检视在android中。我们有五个TextView, 两个显示输入文本, 一个显示所选的操作, 一个显示结果。左侧的一个小部件用于显示一些永久性信息, 在这种情况下, 这是我的名字。
  • 布局位于分辨率/布局文件夹, 并以xml格式定义。因此, 创建一个activity_main.xml布局文件位于res / layout目录, 并复制以下代码。如果你使用的是Android Studio, 则在创建新项目时会自动创建activity_main.xml。
  • Activity_main.xml:此代码创建了一个用户界面, 供用户在XML文件中进行交互。 LinearLayout和RelativeLayout用于在层次结构中排列这些小部件(例如按钮)。在相对布局中, 你可以将子项放置在彼此相关的位置, 而线性布局则以线性方式排列它们。

接口工作

这样就到了设计阶段, 但是我们仍然需要定义用户界面背后的大脑。例如, 当你单击特定按钮或与任何其他布局对象交互时, 将会发生的事情。活动事物背后的大脑MainActivity.java该文件处理与特定界面有关的用户交互的所有响应, 并且还可以执行其他工作。

  • MainActivity.java:打开mainactivity.java(此文件也会自动创建)并在其中复制以下代码。 MainActivity在这里将上述XML文件设置为相应的界面, 并处理该用户界面上的交互, 尤其是按钮单击。这是MainActivity.java文件中的代码。

执行计算

上面的类处理所有用户交互, 剩下的唯一事情就是计算实际结果。现在, 我们必须再创建一个类来处理所有与计算有关的工作。这项工作已经从我们的MainActivity类中分离出来。创建一个新的计算器类, 并在其中复制以下代码。这用于处理所有计算。由于此函数的所有成员函数都定义为静态, 因此我们在不使它们成为计算器类对象的情况下调用它们。

  • 计算器类

按钮单击动画

还剩下一件事。我们仍然必须定义与按钮按下有关的动画, 因为当你按下按钮时, 它会放大然后回到其正常大小。这些动画已在单独的xml文件中定义, 并在需要时调用。建立档案scale.xmlin资源/动画文件夹, 然后将以下代码粘贴到其中。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 <scale
 android:fromXScale="1.0"
 android:toXScale="2.0"
 android:fromYScale="1.0"
 android:toYScale="2.0"
 android:duration="50"
 android:pivotY="50%"
 android:pivotX="50%"
 android:repeatCount="1"
 android:repeatMode="reverse"/> </set>

就是这样, 你准备走了。你可以通过单击"运行"按钮在模拟器中运行项目, 也可以安装生成的apk并在物理android设备中运行它。该项目将在5英寸的屏幕上完美运行(1280 * 720分辨率非常完美)。这是从Yu Yuphoria中运行该应用程序获得的一些屏幕截图。

输出如下:

1
2

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: