android studio实现计算器

本文实例为大家分享了android studio实现计算器的具体代码,供大家参考,具体内容如下

效果图:

资源文件:

color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <color name="colorPrimary">#3F51B5</color>
  <color name="colorPrimaryDark">#303F9F</color>
  <color name="colorAccent">#FF4081</color>
  <color name="white">#FFFFFF</color>
  <color name="black">#000000</color>
  <color name="zi">#FFFFFF</color>
  <color name="gray">#BEBEBE</color>
  <color name="green">#9AFF9A</color>
  <color name="littlegreen">#F0FFFF</color>
</resources>

white.xml

设置input text的填充色为白色

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp"/>
  <solid
    android:color="@color/white"/>
</shape>

selector.xml

点击按钮时产生阴影效果

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@color/littlegreen"
    android:state_pressed="true"/>
  <item android:drawable="@color/white" />
</selector>

equeal.xml

同理,等号的阴影效果

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@color/white"
    android:state_pressed="true"/>
  <item android:drawable="@color/littlegreen" />
</selector>

布局文件

<?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"
  android:background="@drawable/jisuanqi"

  tools:context="com.example.administrator.calculate.MainActivity"
  >

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:paddingTop="20dp">

    <EditText
      android:id="@+id/input"
      android:layout_width="fill_parent"
      android:layout_height="60dp"
      android:background="@drawable/white"
      android:editable="false"
      android:gravity="right|bottom"
      />
  </LinearLayout>
  <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_marginTop="20dp"
  android:orientation="horizontal"
  android:gravity="center">
  <Button
    android:layout_width="65dp"
    android:layout_height="65dp"
    android:text="C"
    android:background="@drawable/selector"
    android:gravity="center"
    android:textSize="25sp"
    android:id="@+id/clear"
    />
  <Button
    android:layout_width="65dp"
    android:layout_height="65dp"
    android:text="←"
    android:background="@drawable/selector"
    android:gravity="center"
    android:layout_marginLeft="10dp"
    android:textSize="23sp"
    android:id="@+id/delete"
    />
  <Button
    android:layout_width="65dp"
    android:layout_height="65dp"
    android:text="×"
    android:background="@drawable/selector"
    android:gravity="center"
    android:layout_marginLeft="10dp"
    android:textSize="25sp"
    android:id="@+id/cheng"
    />
  <Button
    android:layout_width="65dp"
    android:layout_height="65dp"
    android:text="÷"
    android:background="@drawable/selector"
    android:gravity="center"
    android:layout_marginLeft="10dp"
    android:textSize="25sp"
    android:id="@+id/clu"
    />

</LinearLayout>

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:orientation="horizontal"
    android:gravity="center">
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="7"
      android:background="@drawable/selector"
      android:gravity="center"
      android:textSize="25sp"
      android:id="@+id/num7"
      />
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="8"
      android:background="@drawable/selector"
      android:gravity="center"
      android:layout_marginLeft="10dp"
      android:textSize="25sp"
      android:id="@+id/num8"
      />
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="9"
      android:background="@drawable/selector"
      android:gravity="center"
      android:layout_marginLeft="10dp"
      android:textSize="25sp"
      android:id="@+id/num9"
      />
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="-"
      android:background="@drawable/selector"
      android:gravity="center"
      android:layout_marginLeft="10dp"
      android:textSize="25sp"
      android:id="@+id/charjian"
      />

  </LinearLayout>

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:orientation="horizontal"
    android:gravity="center">
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="4"
      android:background="@drawable/selector"
      android:gravity="center"
      android:textSize="25sp"
      android:id="@+id/num4"
      />
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="5"
      android:background="@drawable/selector"
      android:gravity="center"
      android:layout_marginLeft="10dp"
      android:textSize="25sp"
      android:id="@+id/num5"
      />
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="6"
      android:background="@drawable/selector"
      android:gravity="center"
      android:layout_marginLeft="10dp"
      android:textSize="25sp"
      android:id="@+id/num6"
      />
    <Button
      android:layout_width="65dp"
      android:layout_height="65dp"
      android:text="+"
      android:background="@drawable/selector"
      android:gravity="center"
      android:layout_marginLeft="10dp"
      android:textSize="25sp"
      android:id="@+id/charadd"
      />

  </LinearLayout>

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    android:layout_marginTop="10dp"
    >
    <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="vertical"

      >
      <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <Button
          android:layout_width="65dp"
          android:layout_height="65dp"
          android:background="@drawable/selector"
          android:text="1"
          android:gravity="center"
          android:textSize="25sp"
          android:id="@+id/num1"
          />
        <Button
          android:layout_width="65dp"
          android:layout_height="65dp"
          android:text="2"
          android:background="@drawable/selector"
          android:gravity="center"
          android:layout_marginLeft="10dp"
          android:textSize="25sp"
          android:id="@+id/num2"/>
        <Button
          android:layout_width="65dp"
          android:layout_height="65dp"
          android:text="3"
          android:background="@drawable/selector"
          android:gravity="center"
          android:layout_marginLeft="10dp"
          android:textSize="25sp"
          android:id="@+id/num3"/>
      </LinearLayout>

      <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="10dp">

        <Button
          android:id="@+id/num0"
          android:layout_width="140dp"
          android:layout_height="65dp"
          android:text="0"
          android:background="@drawable/selector"
          android:gravity="center"
          android:textSize="25sp" />

        <Button
          android:id="@+id/dian"
          android:layout_width="65dp"
          android:layout_height="65dp"
          android:layout_marginLeft="10dp"
          android:background="@drawable/selector"
          android:gravity="center"
          android:text="."
          android:textSize="25sp" />

      </LinearLayout>

    </LinearLayout>

    <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
      <Button
        android:layout_width="65dp"
        android:layout_height="140dp"
        android:text="="
        android:background="@drawable/equal"
        android:gravity="center"
        android:layout_marginLeft="10dp"
        android:textSize="25sp"
        android:id="@+id/equai"/>
    </LinearLayout>

  </LinearLayout>

</LinearLayout>

java代码

package com.example.administrator.calculate;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {

  @BindView(R.id.input)
  EditText input;
  @BindView(R.id.clear)
  Button clear;
  @BindView(R.id.delete)
  Button delete;
  @BindView(R.id.cheng)
  Button cheng;
  @BindView(R.id.clu)
  Button chu;
  @BindView(R.id.num7)
  Button num7;
  @BindView(R.id.num8)
  Button num8;
  @BindView(R.id.num9)
  Button num9;
  @BindView(R.id.charjian)
  Button charjian;
  @BindView(R.id.num4)
  Button num4;
  @BindView(R.id.num5)
  Button num5;
  @BindView(R.id.num6)
  Button num6;
  @BindView(R.id.charadd)
  Button charadd;
  @BindView(R.id.num1)
  Button num1;
  @BindView(R.id.num2)
  Button num2;
  @BindView(R.id.num3)
  Button num3;
  @BindView(R.id.num0)
  Button num0;
  @BindView(R.id.dian)
  Button dian;
  @BindView(R.id.equai)
  Button equal;

  private String ss="";
  private boolean fu=false;
  private boolean num=false;
  private boolean point=false;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);

  }

  @OnClick({R.id.clear, R.id.delete, R.id.cheng, R.id.clu, R.id.num7, R.id.num8, R.id.num9, R.id.charjian, R.id.num4, R.id.num5, R.id.num6, R.id.charadd, R.id.num1, R.id.num2, R.id.num3, R.id.num0, R.id.dian, R.id.equai})
  public void onViewClicked(View view) {
    switch (view.getId()) {
      case R.id.clear:
      {
        ss="";
        input.setText(ss);
      }
        break;
      case R.id.delete:
      {
        if(ss.indexOf(" ")==ss.length()-3)
        {
          ss= ss.substring(0,ss.length() - 2);
        }
        if(ss.length()>0)
        {
          ss= ss.substring(0,ss.length() - 1);
        }
        input.setText(ss);
      }
        break;
      case R.id.cheng:
      {
        if(ss.length()==0)
        {
          break;
        }
        if(ss.contains(" "))
        {
          if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break;
          getResult();
        }
        fu=true;
        ss+=" × ";
        input.setText(ss);
      }
        break;
      case R.id.clu:
      {
        if(ss.length()==0)
        {
          break;
        }
        if(ss.contains(" "))
        {
          if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break;
          getResult();
        }
        fu=true;
        ss+=" ÷ ";
        input.setText(ss);
      }
        break;
      case R.id.num7:
      {
        ss+="7";
        input.setText(ss);
      }
        break;
      case R.id.num8:
      {
        ss+="8";
        input.setText(ss);
      }
        break;
      case R.id.num9:
      {
        ss+="9";
        input.setText(ss);
      }
        break;
      case R.id.charjian:
      {
        if(ss.length()==0)
        {
          break;
        }
        if(ss.contains(" "))
        {
          if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break;
          getResult();
        }
        fu=true;
        ss+=" - ";
        input.setText(ss);
      }
        break;
      case R.id.num4:
      {
        ss+="4";
        input.setText(ss);
      }
        break;
      case R.id.num5:
      {
        ss+="5";
        input.setText(ss);
      }
        break;
      case R.id.num6:
      {
        ss+="6";
        input.setText(ss);
      }
        break;
      case R.id.charadd:
      {
        if(ss.length()==0)
        {
          break;
        }
        if(ss.contains(" "))
        {
          if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break;
          getResult();
        }
        fu=true;
        ss+=" + ";
        input.setText(ss);
      }
        break;
      case R.id.num1:
      {
        ss+="1";
        input.setText(ss);
      }
        break;
      case R.id.num2:
      {
        ss+="2";
        input.setText(ss);
      }
        break;
      case R.id.num3:
      {
        ss+="3";
        input.setText(ss);
      }
        break;
      case R.id.num0:
      {
        ss+="0";
        input.setText(ss);
      }
        break;
      case R.id.dian:
      {
        if(ss.length()==0||ss.indexOf(" ")==ss.length()-3||ss.lastIndexOf(".")>ss.indexOf(" "))
        {
          break;
        }
        else
        {
          ss+=".";
          input.setText(ss);
        }
      }
        break;
      case R.id.equai:
        getResult();
        break;
    }
  }
  private void getResult()
  {
    double result=0;
    if(ss==null||ss.equals("")) return;
    if(!ss.contains(" ")) return;
    String s1=ss.substring(0,ss.indexOf(" "));
    String op=ss.substring(ss.indexOf(" ")+1,ss.indexOf(" ")+2);
    String s2=ss.substring(ss.indexOf(" ")+3);
    if(!s1.equals("")&&!s2.equals(""))
    {
      double d1=Double.parseDouble(s1);
      double d2=Double.parseDouble(s2 );
      switch (op)
      {
        case "+": result=d1+d2;break;
        case "-": result=d1-d2;break;
        case "×": result=d1*d2;break;
        case "÷":
        {
          if(d2==0)
          {
            Toast.makeText(this, "不能除以零", Toast.LENGTH_SHORT).show();
            break;
          }
          result=d1/d2*1.0;
        }
        break;
      }

      int r = (int) result;
      if(r==result)
      {
        input.setText(""+r);
        ss=""+r;
      }
      else
      {
        input.setText(result+"");
        ss=""+result;
      }

    }
  }
}

在AndroidManifest.xml文件中activity 后面添加

android:theme=”@style/Theme.AppCompat.DayNight.NoActionBar”

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android Studio实现简易计算器

    如果是制作简易计算器的话是基本没有难点的,供大家参考,具体内容如下 步骤是先写好界面布局,将按钮的布局.字号颜色啥的做好,再就是设置监听器. 使用了NoTitleBar的主题 代码如下: activity_main里关于界面的代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

  • Android studio设计简易计算器

    本文实例为大家分享了Android studio设计简易计算器的具体代码,供大家参考,具体内容如下 效果显示: 第一步,简单的界面布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and

  • android studio实现计算器

    本文实例为大家分享了android studio实现计算器的具体代码,供大家参考,具体内容如下 效果图: 资源文件: color.xml <?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark&

  • android studio实现简单的计算器功能

    本文实例为大家分享了android studio实现计算器的具体代码,供大家参考,具体内容如下 先来个效果图: 功能: 满足加减乘除四则运算规则,有回退.清除功能. 下面的代码只是完成基本功能,若添加背景图先看看下面的方法:Android Studio App设置背景图片 1.本地准备好图片,复制它,粘贴进mipmap(drawable)文件夹. 2.在activity_main.xml里添加下面代码,注意添加位置. 3.完成,效果图: content_main.xml文件(页面布局,conte

  • Android studio实现简单计算器

    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析 在Android studio中设计并实现一个简单的计算器,实现连续的加减乘除运算. 界面设计 采用网格GridLayout布局,设计了一个6行4列的网格,最上边是一个EditText用来显示用户输入的运算数字和运算符,以及相关的运算结果,其占4列,文本框大小为50dip:依次往下的界面分别设置了数字和运算符以及操作的按钮,各行各列的每个按钮的大小均设为26sp. 编程分析 设计了两个文

  • Android Studio实现简单计算器APP

    一.简介:用Android Studio 实现一个简单的计算器APP,并在蓝叠模拟器中运行. 该计算器只能实现两位数字的四则运算. 二.代码 activity_main.xml   ---界面设计 <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t

  • Android Studio实现简单计算器功能

    本文实例为大家分享了Android Studio实现简单计算器功能的具体代码,供大家参考,具体内容如下 程序步骤: (1)在布局文件定义一些计算器界面的文本框,按钮等组件. (2)在Activity中获取组件实例. (3)通过swtich函数,判断输入的内容,并进行相应操作,通过getText()获取文本内容,setText()显示. 程序代码设计: 一.界面布局 参考书本例2-9,应用网格布局设计计算器界面,在设计区域设置一个6行4列的网格布局,第一行为显示数据的文本标签,第二行为清除数据的按

  • Android studio实现简单的计算器

    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析及概要设计 目的 开发一个简单的计算器App,使之能够完成加减乘除混合运算 工具及环境 使用java语言,在Android studio平台上进行开发 功能设计 "+":实现两数相加 "-":实现两数相减 "*":实现两数相乘 "/":实现两数相除 "=":计算并得出正确结果 "C"

  • Android Studio实现长方体表面积计算器

    本文实例为大家分享了Android Studio实现长方体.表面积计算器的具体代码,供大家参考,具体内容如下 写了两个方法(在我理解之中有三个方法,其中循环字符串匹配太low了,pass掉),目前先上传一个,后续补上. 针对这个问题 总共有四个文件 方法一:正则表达式 1.MainActivity.java package com.example.flyyu.four; import android.content.Intent; import android.support.v7.app.Ap

  • android studio实现简单的计算器(无bug)

    本文实例为大家分享了android studio实现简单计算器的具体代码,供大家参考,具体内容如下 1.效果图 2布局代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent&qu

  • android studio 项目 :UI设计高精度实现简单计算器

    UI设计: 实验目的: 自主完成一个简单APP的设计工作,综合应用已经学到的Android UI设计技巧,重点注意合理使用布局.实验要求: 1.完成一个计算器的设计,可以以手机自带的计算器为参考.设计过程中,注意考虑界面的美观性,不同机型的适应性,以及功能的完备性. 2.注意结合Activity的生命周期,考虑不同情况下计算器的界面状态. 3.如有余力,可以考虑实现一个高精度科学计算型的计算器. 实现效果: 整数和浮点数的加减乘除.取余.开根号,异号.清零 计算结果全部实现. 精度保留到小数点后

随机推荐