精华内容
下载资源
问答
  • 利用Android studio设计一个计算器

    千次阅读 多人点赞 2020-02-22 13:45:56
    利用Android studio设计一个计算器 计算器界面

    利用Android studio设计一个计算器

    计算器界面

    在这里插入图片描述

    项目结构

    在这里插入图片描述
    其中activity_main.xml文件为计算器的界面,shape_screen.xml为计算器显示器的图形,button1_presssed.xml为按键按压下的图形,button1_nomal.xml为按键未被按压下的图形,button1_shape.xml是为了凸显按键按下和弹起时呈现不同效果的文件。其余的文件类似。

    布局文件

    activity_main.xml如下:
    <?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="#000000"
    tools:context="com.example.calculator.MainActivity">  
    
    
      <TextView  //计算器显示屏                                                            
        android:id="@+id/calculator_screen"
        android:layout_width="match_parent"
        android:layout_height="170dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/shape_screen"
        android:gravity="right|bottom"
        android:hint="0"
        android:paddingRight="5dp"
        android:textColor="#000000"
        android:textSize="50sp"/>
    
    
       //各按键
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:orientation="vertical"
        android:gravity="center_horizontal|center_vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
    
        <Button
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:text="%"
            android:background="@drawable/button1_shape"
            android:textSize="40sp"
            android:id="@+id/button_percent"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="5dp"/>
        <Button
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:text="÷"
            android:background="@drawable/button1_shape"
            android:textSize="45sp"
            android:id="@+id/button_divide"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="5dp"/>
        <Button
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="@drawable/button1_shape"
            android:text="×"
            android:textSize="45sp"
            android:id="@+id/button_multiply"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="5dp"/>
        <Button
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:text="C"
            android:background="@drawable/button2_shape"
            android:textSize="40sp"
            android:id="@+id/button_clear"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="5dp"/>
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
    
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="7"
                android:textSize="40sp"
                android:background="@drawable/button3_shape"
                android:id="@+id/button_7"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="8"
                android:background="@drawable/button3_shape"
                android:textSize="40sp"
                android:id="@+id/button_8"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="9"
                android:background="@drawable/button3_shape"
                android:textSize="40sp"
                android:id="@+id/button_9"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="+"
                android:background="@drawable/button2_shape"
                android:textSize="40sp"
                android:id="@+id/button_add"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
    
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="4"
                android:textSize="40sp"
                android:background="@drawable/button3_shape"
                android:id="@+id/button_4"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="5"
                android:background="@drawable/button3_shape"
                android:textSize="40sp"
                android:id="@+id/button_5"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="6"
                android:background="@drawable/button3_shape"
                android:textSize="40sp"
                android:id="@+id/button_6"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:text="-"
                android:background="@drawable/button2_shape"
                android:textSize="50sp"
                android:id="@+id/button_minus"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
    
    
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:background="@drawable/button3_shape"
                android:text="1"
                android:textSize="40sp"
                android:id="@+id/button_1"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:background="@drawable/button3_shape"
                android:text="2"
                android:textSize="40sp"
                android:id="@+id/button_2"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:background="@drawable/button3_shape"
                android:text="3"
                android:textSize="40sp"
                android:id="@+id/button_3"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:background="@drawable/button2_shape"
                android:text="√"
                android:textSize="40sp"
                android:id="@+id/button_radic"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"/>
    
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
    
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:background="@drawable/button3_shape"
                android:text="0"
                android:textSize="40sp"
                android:id="@+id/button_0"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="10dp"/>
            <Button
                android:layout_width="80dp"
                android:layout_height="80dp"
                android:background="@drawable/button3_shape"
                android:text="."
                android:textSize="45sp"
                android:id="@+id/button_dot"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="10dp"/>
    
    
            <Button
                android:layout_width="160dp"
                android:layout_height="80dp"
                android:background="@drawable/button4_shape"
                android:text="="
                android:textSize="45sp"
                android:id="@+id/button_equal"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="10dp"/>
    
           </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    
    button1_nomal.xml如下:
     <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false">
    
    <solid android:color="#c0c0c0"/>
    
    
    <size
        android:width="30dp"
        android:height="30dp">
    
    </size>
    
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp">
    
    </padding>
    <stroke android:width="1dp"
        android:color="#000000">//描边
    
    </stroke>
    
    </shape>
    
    button1_pressed.xml如下:
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false">
    
    <solid android:color="#ffffff"/>
    
    
    <size
        android:width="30dp"
        android:height="30dp">
    
    </size>
    
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp">
    
    </padding>
    <stroke android:width="1dp"
        android:color="#000000">//描边
    
    </stroke>
    
    </shape>
    
    button1_shape.xml如下:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button1_pressed"/>
    <item android:drawable="@drawable/button1_nomal"/>
    </selector>
    

    代码文件

    MainActivity.java如下:
    package com.example.calculator;
    
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.app.Activity;
    import android.widget.TextView;
    import android.widget.Toast;
    
     public class MainActivity extends Activity  {
       private TextView calculator_monitor;
         private Button   but_0,but_1,but_2,but_3,but_4,but_5,but_6,but_7,but_8,but_9,but_clear,but_divide,
            but_multiply,but_add,but_minus,but_radic,but_dot,but_equal,but_percent;
      double num1=0,num2=0;
      double result=0;//Calculation results
       int operation=0;//Operands
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        calculator_monitor=(TextView)findViewById(R.id.calculator_screen);
        but_0=(Button)findViewById(R.id.button_0);
        but_1=(Button)findViewById(R.id.button_1);
        but_2=(Button)findViewById(R.id.button_2);
        but_3=(Button)findViewById(R.id.button_3);
        but_4=(Button)findViewById(R.id.button_4);
        but_5=(Button)findViewById(R.id.button_5);
        but_6=(Button)findViewById(R.id.button_6);
        but_7=(Button)findViewById(R.id.button_7);
        but_8=(Button)findViewById(R.id.button_8);
        but_9=(Button)findViewById(R.id.button_9);
        but_add=(Button)findViewById(R.id.button_add);
        but_clear=(Button)findViewById(R.id.button_clear);
        but_divide=(Button)findViewById(R.id.button_divide);
        but_dot=(Button)findViewById(R.id.button_dot);
        but_equal=(Button)findViewById(R.id.button_equal);
        but_minus=(Button)findViewById(R.id.button_minus);
        but_multiply=(Button)findViewById(R.id.button_multiply);
        but_radic=(Button)findViewById(R.id.button_radic);
        but_percent=(Button)findViewById(R.id.button_percent);
    
    
        but_0.setOnClickListener(new MyOnClickListener());//加监视器
        but_1.setOnClickListener(new MyOnClickListener());
        but_2.setOnClickListener(new MyOnClickListener());
        but_3.setOnClickListener(new MyOnClickListener());
        but_4.setOnClickListener(new MyOnClickListener());
        but_5.setOnClickListener(new MyOnClickListener());
        but_6.setOnClickListener(new MyOnClickListener());
        but_7.setOnClickListener(new MyOnClickListener());
        but_8.setOnClickListener(new MyOnClickListener());
        but_9.setOnClickListener(new MyOnClickListener());
        but_clear.setOnClickListener(new MyOnClickListener());
        but_divide.setOnClickListener(new MyOnClickListener());
        but_minus.setOnClickListener(new MyOnClickListener());
        but_add.setOnClickListener(new MyOnClickListener());
        but_equal.setOnClickListener(new MyOnClickListener());
        but_multiply.setOnClickListener(new MyOnClickListener());
        but_dot.setOnClickListener(new MyOnClickListener());
        but_radic.setOnClickListener(new MyOnClickListener());
        but_percent.setOnClickListener(new MyOnClickListener());
    
    }
    class MyOnClickListener implements  View.OnClickListener{
        public void onClick(View v){//点击事件的处理方法
            switch (v.getId()){
                case R.id.button_clear:
                    calculator_monitor.setText(null);
                    break;
                case R.id.button_0:
                    String str0=calculator_monitor.getText().toString();//获取输入的内容并转换为string型
                    str0+="0";
                    calculator_monitor.setText(str0);
                    break;
                case R.id.button_1:
                    String str1=calculator_monitor.getText().toString();
                    str1+="1";
                    calculator_monitor.setText(str1);
                    break;
                case R.id.button_2:
                    String str2=calculator_monitor.getText().toString();
                    str2+="2";
                    calculator_monitor.setText(str2);
                    break;
                case R.id.button_3:
                    String str3=calculator_monitor.getText().toString();
                    str3+="3";
                    calculator_monitor.setText(str3);
                    break;
                case R.id.button_4:
                    String str4=calculator_monitor.getText().toString();
                    str4+="4";
                    calculator_monitor.setText(str4);
                    break;
                case R.id.button_5:
                    String str5=calculator_monitor.getText().toString();
                    str5+="5";
                    calculator_monitor.setText(str5);
                    break;
                case R.id.button_6:
                    String str6=calculator_monitor.getText().toString();
                    str6+="6";
                    calculator_monitor.setText(str6);
                    break;
                case R.id.button_7:
                    String str7=calculator_monitor.getText().toString();
                    str7+="7";
                    calculator_monitor.setText(str7);
                    break;
                case R.id.button_8:
                    String str8=calculator_monitor.getText().toString();
                    str8+="8";
                    calculator_monitor.setText(str8);
                    break;
                case R.id.button_9:
                    String str9=calculator_monitor.getText().toString();
                    str9+="9";
                    calculator_monitor.setText(str9);
                    break;
                case R.id.button_dot:
                    String strdot=calculator_monitor.getText().toString();
                    strdot+=".";
                    calculator_monitor.setText(strdot);
                    break;
                case R.id.button_add:
                    String stradd=calculator_monitor.getText().toString();
                    if(stradd.equals(null)){
                        return;
                    }
                    num1=Double.valueOf(stradd);
                    stradd+="+";
                    calculator_monitor.setText(null);
                    operation=1;
                    break;
                case R.id.button_minus:
                    String strminus=calculator_monitor.getText().toString();
                    if(strminus.equals(null)){
                        return;
                    }
                    num1=Double.valueOf(strminus);
                    strminus+="-";
                    calculator_monitor.setText(null);
                    operation=2;
                    break;
                case R.id.button_multiply:
                    String strmultiply=calculator_monitor.getText().toString();
                    if(strmultiply.equals(null)){
                        return;
                    }
                    num1=Double.valueOf(strmultiply);
                    strmultiply+="*";
                    calculator_monitor.setText(null);
                    operation=3;
                    break;
                case R.id.button_divide:
                    String strdivide=calculator_monitor.getText().toString();
                    if(strdivide.equals(null)){
                        return;
                    }
                    num1=Double.valueOf(strdivide);
                    strdivide+="/";
                    calculator_monitor.setText(null);
                    operation=4;
                    break;
                case R.id.button_percent:
                    String strpercent=calculator_monitor.getText().toString();
                    if(strpercent.equals(null)){
                        return;
                    }
                    num1=Double.valueOf(strpercent);
                    strpercent+="%";
                    operation=5;
                    break;
    
    
    
                case R.id.button_equal:
                    String strequ=calculator_monitor.getText().toString();
                    num2=Double.valueOf(strequ);
                    // calculator_monitor.setText(null);
                    switch (operation){
                        case 1:
                            result=num1+num2;
                            calculator_monitor.setText(String.valueOf(num1)+"+"+String.valueOf(num2)+"="+String.valueOf(result));
                            break;
                        case 2:
                            result=num1-num2;
                            calculator_monitor.setText(String.valueOf(num1)+"-"+String.valueOf(num2)+"="+String.valueOf(result));
                            break;
                        case 3:
                            result=num1*num2;
                            calculator_monitor.setText(String.valueOf(num1)+"×"+String.valueOf(num2)+"="+String.valueOf(result));
                            break;
                        case 4:
                            if(num2==0){
                                calculator_monitor.setText("被除数不能为0!");
    
    
                            }
                            else {
                                result = num1 / num2;
                                calculator_monitor.setText(String.valueOf(num1) + "÷" + String.valueOf(num2) + "=" + String.valueOf(result));
                            }
                            break;
                        case 5:
                            result=num1/100;
                            calculator_monitor.setText(String.valueOf(num1) + "%" +"="+String.valueOf(result));
                            break;
    
                        default:
                            result=0;
                            break;
                    }
            }
    
         }
      }
    }
    

    结果示例

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    点击下载可获得完整的工程文件

    展开全文
  • 安卓实验 设计一个计算器界面

    千次阅读 2020-04-05 11:15:58
    只是一个简易的计算器,实现了简单地计算功能,没有写回退功能 源码下载地址:点击下载 实现效果 java代码 package com.example.experiment2; import androidx.appcompat.app.AppCompatActivity; import ...

    只是一个简易的计算器,实现了简单地计算功能,没有写回退功能

    源码下载地址:点击下载

    实现效果 

     

    java代码

    package com.example.experiment2;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TextView;
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
        private  final  String Tag="MainActivity";
        private TextView tv_input;
        private  float result;
        private String fuhao;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initUi();
        }
        private void initUi() {
            tv_input = findViewById(R.id.tv_input);
        }
        private String getresult() {
            String data= tv_input.getText().toString();
            //将数字与运算符号切割
            String[] str1 = data.split(" ");
            //循环计算,得到最后结果
            while (str1.length!=1){
                //×,÷计算方法
                for(int i=0;i<str1.length;i++){
                    if(str1[i].equals("×")||str1[i].equals("÷")){
                        if(str1[i].equals("×")){
                            str1[i]=(Float.parseFloat(str1[i-1])*Float.parseFloat(str1[i+1]))+"";
                            int [] index=new int[]{i-1,i+1};
                            str1=deletestr(index,str1);
                        }else {
                            str1[i]=(Float.parseFloat(str1[i-1])/Float.parseFloat(str1[i+1]))+"";
                            int [] index=new int[]{i-1,i+1};
                            str1=deletestr(index,str1);
                        }
                    }
                }
                //+,-计算方法
                for(int i=0;i<str1.length;i++){
                    if("+".equals(str1[i])||"-".equals(str1[i])){
                        if(str1[i].equals("+")){
                            str1[i]=(Float.parseFloat(str1[i-1])+Float.parseFloat(str1[i+1]))+"";
                            int [] index=new int[]{i-1,i+1};
                            str1=deletestr(index,str1);
                        }else {
                            str1[i]=(Float.parseFloat(str1[i-1])-Float.parseFloat(str1[i+1]))+"";
                            int [] index=new int[]{i-1,i+1};
                            str1=deletestr(index,str1);
                        }
                    }
                }
            }
            return str1[0];
        }
        //同时删除数组中计算完成符号左右数
        private String[] deletestr(int [] i, String[] str1) {
            List<String> strs=new ArrayList<String>();
            for(String s:str1){
                strs.add(s);
            }
            strs.remove(i[0]);
            strs.remove(i[1]-1);
            String str[]=new   String[str1.length-2];
           for(int j = 0;j<str.length;j++){
                str[j]=strs.get(j);
            }
            return  str;
        }
    
        private void tvInputtext(String s) {
            //第一次输入 将0去除,以及上次结果置空
            if(tv_input.getText().toString().equals("0")||tv_input.getText().toString().contains("=")){
                tv_input.setText("");
            }
            //符号左右添加空格方便split
            if(s.equals("×")||s.equals("-")||s.equals("+")||s.equals("÷")){
                tv_input.setText(tv_input.getText()+" "+s+" ");
            }else {
                tv_input.setText(tv_input.getText()+s);
            }
        }
        //按钮点击事件
        public  void onSubmit(View view){
            int id = view.getId();
            switch (id){
                case R.id.bt_value0:
                    tvInputtext("0");
                    break;
                case R.id.bt_value1:
                    tvInputtext("1");
                    break;
                case R.id.bt_value2:
                    tvInputtext("2");
                    break;
                case R.id.bt_value3:
                    tvInputtext("3");
                    break;
                case R.id.bt_value4:
                    tvInputtext("4");
                    break;
                case R.id.bt_value5:
                    tvInputtext("5");
                    break;
                case R.id.bt_value6:
                    tvInputtext("6");
                    break;
                case R.id.bt_value7:
                    tvInputtext("7");
                    break;
                case R.id.bt_value8:
                    tvInputtext("8");
                    break;
                case R.id.bt_value9:
                    tvInputtext("9");
                    break;
                case R.id.bt_cheng:
                    tvInputtext("×");
                    break;
                case R.id.bt_chu:
                    tvInputtext("÷");
                    break;
                case R.id.bt_clean:
                    //清除按钮 置空
                    tv_input.setText("");
                    break;
                case R.id.bt_dengyu:
                    tv_input.setText(tv_input.getText()+"="+getresult());
                    break;
                case R.id.bt_dian:
                    tvInputtext(".");
                    break;
                case R.id.bt_jia:
                    tvInputtext("+");
                    break;
                case R.id.bt_jian:
                    tvInputtext("-");
                    break;
            }
        }
    }
    

    XML文件 

    <?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:orientation="vertical"
        android:padding="15dp"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:gravity="right|center_vertical"
            android:paddingRight="10dp"
            android:text="0"
            android:id="@+id/tv_input"
            android:textColor="#030303"
            android:textSize="25sp" />
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="清除"
            android:onClick="onSubmit"
            android:textSize="16sp"
            android:id="@+id/bt_clean"
            android:layout_marginTop="10dp"
            />
    
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:columnCount="5"
            android:rowCount="5">
    
            <Button
                android:id="@+id/bt_value7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="0"
                android:layout_column="0"
                android:text="7"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_value8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="0"
                android:layout_column="1"
                android:text="8"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_value9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="0"
                android:layout_column="2"
                android:text="9"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_chu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="0"
                android:layout_column="3"
                android:text="÷"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            //第二行
    
            <Button
                android:id="@+id/bt_value4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="1"
                android:layout_column="0"
                android:text="4"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_value5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="1"
                android:layout_column="1"
                android:text="5"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_value6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="1"
                android:layout_column="2"
                android:text="6"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_cheng"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="1"
                android:layout_column="3"
                android:text="×"
                android:onClick="onSubmit"
                android:textSize="40dp" />
            //第三行
    
            <Button
                android:id="@+id/bt_value1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="0"
                android:text="1"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_value2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="1"
                android:text="2"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_value3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="2"
                android:text="3"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_jian"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="2"
                android:layout_column="3"
                android:text="-"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            //第四行
    
            <Button
                android:id="@+id/bt_dian"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="0"
                android:text="."
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_value0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="1"
                android:text="0"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_dengyu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="2"
                android:text="="
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
            <Button
                android:id="@+id/bt_jia"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_row="3"
                android:layout_column="3"
                android:text="+"
                android:onClick="onSubmit"
                android:textSize="40dp" />
    
    
        </GridLayout>
    
    
    </LinearLayout>

     

     

    展开全文
  • 这是Android开发学习的一个例子,使用Android Studio开发的一个计算器APP,模仿Windows 10的系统计算器来实现的。
  • 主要为大家详细介绍了Android studio设计简易计算器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 这个是Android开发的一个计算器的做法 很简单 但是对于新手来说很重要
  • 山西大学工程学院—操作系统课程设计—S计本1205班—刘航成第 PAGE 3页·共 NUMPAGES 33页山西大学工程学院操作系统 课程设计报告书题 目 安卓计算器的开发与设计系 别 计算机工程系专 业 计算机科学与技术班 级 S计...

    山西大学工程学院—操作系统课程设计—S计本1205班—刘航成

    第 PAGE 3页·共 NUMPAGES 33页

    山西大学工程学院

    操作系统 课程设计报告书

    题 目 安卓计算器的开发与设计

    系 别 计算机工程系

    专 业 计算机科学与技术

    班 级 S计本1205

    姓 名刘航成

    指导教师尹老师

    下达日期 2013年 6 月 13 日

    设计时间自2013 年 7 月 1 日 至 2013 年 7 月 4 日

    目录

    TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc359876222" 摘 要 PAGEREF _Toc359876222 \h 3

    HYPERLINK \l "_Toc359876223" 一、设计概述 PAGEREF _Toc359876223 \h 4

    HYPERLINK \l "_Toc359876224" 1.设计背景 PAGEREF _Toc359876224 \h 4

    HYPERLINK \l "_Toc359876225" 2.设计目的 PAGEREF _Toc359876225 \h 4

    HYPERLINK \l "_Toc359876226" 3.设计要求 PAGEREF _Toc359876226 \h 4

    HYPERLINK \l "_Toc359876227" 4.开发环境 PAGEREF _Toc359876227 \h 6

    HYPERLINK \l "_Toc359876228" 二、设计细节 PAGEREF _Toc359876228 \h 7

    HYPERLINK \l "_Toc359876229" 1.整体思想 PAGEREF _Toc359876229 \h 7

    HYPERLINK \l "_Toc359876230" 2.容错处理 PAGEREF _Toc359876230 \h 7

    HYPERLINK \l "_Toc359876231" 3.数据结构的设计 PAGEREF _Toc359876231 \h 8

    HYPERLINK \l "_Toc359876232" 4.用户界面的实现 PAGEREF _Toc359876232 \h 8

    HYPERLINK \l "_Toc359876233" 5.文件结构 PAGEREF _Toc359876233 \h 9

    HYPERLINK \l "_Toc359876234" 6.界面组件设计 PAGEREF _Toc359876234 \h 10

    HYPERLINK \l "_Toc359876235" (1) XML文件生成 PAGEREF _Toc359876235 \h 11

    HYPERLINK \l "_Toc359876236" (2)用户界面在程序代码实现 PAGEREF _Toc359876236 \h 11

    HYPERLINK \l "_Toc359876237" (3)用户自定义页面组件 PAGEREF _Toc359876237 \h 11

    HYPERLINK \l "_Toc359876238" 7.程序流程 PAGEREF _Toc359876238 \h 12

    HYPERLINK \l "_Toc359876239" 三、详细设计与实现 PAGEREF _Toc359876239 \h 13

    HYPERLINK \l "_Toc359876240" 1.开发环境搭建 PAGEREF _Toc359876240 \h 13

    HYPERLINK \l "_Toc359876241" (1)安装Android 开发插件 PAGEREF _Toc359876241 \h 13

    HYPERLINK \l "_Toc359876242" (2)配置android sdk PAGEREF _Toc359876242 \h 15

    HYPERLINK \l "_Toc359876243" 2.图形界面设计 PAGEREF _Toc359876243 \h 17

    HYPERLINK \l "_Toc359876244" 3.程序功能实现 PAGEREF _Toc359876244 \h 22

    HYPERLINK \l "_Toc359876245" 四、测试分析 PAGEREF _Toc359876245 \h 28

    HYPERLINK \l "_Toc359876246" 1.模拟器创建 PAGEREF _Toc3598

    展开全文
  • 基于AndroidStudio,实现一个简易的计算器(界面+简单的计算)。 下面是整体界面: 二、思路 首先设计界面,activity_main.xml 计算器界面,需要:文本框TextView——显示数字;数字、符号按钮Button &lt...

     

    一、内容

    基于AndroidStudio,实现一个简易的计算器(界面+简单的计算)。

    下面是整体界面:

    二、思路

    1. 首先设计界面,activity_main.xml

    计算器界面,需要:文本框TextView——显示数字;数字、符号按钮Button

    <?xml version="1.0" encoding="utf-8"?>
    <GridLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:rowCount="6"
        android:columnCount="4"
        >
        <!--文本标签-->
        <TextView
            android:id="@+id/text"
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            android:layout_columnSpan="4"
            android:layout_marginLeft="4px"
            android:gravity="left"
            android:textSize="50dp" />
    
        <Button
            android:id="@+id/btnClear"
            android:layout_width="353dp"
            android:layout_height="wrap_content"
            android:layout_columnSpan="4"
            android:background="@color/colorAccent"
            android:text="清除"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn1"
            android:text="1"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn2"
            android:text="2"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn3"
            android:text="3"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btnPlus"
            android:background="@color/colorPrimary"
            android:text="+"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn4"
            android:text="4"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn5"
            android:text="5"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn6"
            android:text="6"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btnSubtract"
            android:background="@color/colorPrimary"
            android:text="-"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn7"
            android:text="7"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn8"
            android:text="8"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn9"
            android:text="9"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btnMultiply"
            android:background="@color/colorPrimary"
            android:text="*"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btnPoint"
            android:text="."
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btn0"
            android:text="0"
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btnSum"
            android:text="="
            android:textSize="26sp" />
    
        <Button
            android:id="@+id/btnDivide"
            android:background="@color/colorPrimary"
            android:text="/"
            android:textSize="26sp" />
    </GridLayout>

    2.接下来是功能的实现,MainActivity.java

    给各个按钮注册点击事件、对输入内容的判断和计算等。

    package com.example.asus.calculator;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.TextView;
    import android.view.View;
    import android.view.View.OnClickListener;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        Button btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,
                btnClear,btnPlus,btnSubtract,btnMultiply,btnDivide,btnSum,btnPoint;
        TextView text;
        String str = "";
        boolean clr_flag;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btn0 = (Button) findViewById(R.id.btn0);
            btn1 = (Button) findViewById(R.id.btn1);
            btn2 = (Button) findViewById(R.id.btn2);
            btn3 = (Button) findViewById(R.id.btn3);
            btn4 = (Button) findViewById(R.id.btn4);
            btn5 = (Button) findViewById(R.id.btn5);
            btn6 = (Button) findViewById(R.id.btn6);
            btn7 = (Button) findViewById(R.id.btn7);
            btn8 = (Button) findViewById(R.id.btn8);
            btn9 = (Button) findViewById(R.id.btn9);
            btnClear = (Button) findViewById(R.id.btnClear);
            btnPlus = (Button) findViewById(R.id.btnPlus);
            btnSubtract = (Button) findViewById(R.id.btnSubtract);
            btnMultiply = (Button) findViewById(R.id.btnMultiply);
            btnDivide = (Button) findViewById(R.id.btnDivide);
            btnPoint = (Button) findViewById(R.id.btnPoint);
            btnSum = (Button) findViewById(R.id.btnSum);
    
            text = (TextView) findViewById(R.id.text) ;
    
            btn0.setOnClickListener(this);
            btn1.setOnClickListener(this);
            btn2.setOnClickListener(this);
            btn3.setOnClickListener(this);
            btn4.setOnClickListener(this);
            btn5.setOnClickListener(this);
            btn6.setOnClickListener(this);
            btn7.setOnClickListener(this);
            btn8.setOnClickListener(this);
            btn9.setOnClickListener(this);
            btnClear.setOnClickListener(this);
            btnPlus.setOnClickListener(this);
            btnSubtract.setOnClickListener(this);
            btnMultiply.setOnClickListener(this);
            btnDivide.setOnClickListener(this);
            btnPoint.setOnClickListener(this);
            btnSum.setOnClickListener(new click());
    
        }
    
        public void onClick(View v) {
            String input=text.getText().toString();
            switch (v.getId()){
                case   R.id.btn0:
                case   R.id.btn1:
                case   R.id.btn2:
                case   R.id.btn3:
                case   R.id.btn4:
                case   R.id.btn5:
                case   R.id.btn6:
                case   R.id.btn7:
                case   R.id.btn8:
                case   R.id.btn9:
                case   R.id.btnPoint:
                    if(clr_flag){
                        clr_flag=false;
                        str="";
                        text.setText("");
                    }
                    text.setText(input+((Button)v).getText());
                    break;
                case R.id.btnPlus:
                case R.id.btnSubtract:
                case R.id.btnMultiply:
                case R.id.btnDivide:
                    if(clr_flag){
                        clr_flag=false;
                        input="";
                        text.setText("");
                    }
                    text.setText(input + " " + ((Button)v).getText() + " ");
                    break;
                case R.id.btnClear:
                    text.setText("");
                    break;
            }
        }
        class click implements OnClickListener{
            public void onClick (View v) {
                getResult();//调用方法,计算结果
            }
        }
    
        private void getResult () {
            String str1 = text.getText().toString();
            if(str1 == null || str1.equals("")){
                return;
            }
            if(!str1.contains(" ")){
                return ;
            }
            if(clr_flag){
                clr_flag=false;
                return;
            }
            clr_flag=true;
            double result = 0;
    //        运算符前的数字
            String s1 = str1.substring(0,str1.indexOf(" "));
    //        运算符
            String op = str1.substring(str1.indexOf(" ")+1,str1.indexOf(" ")+2);
    //        运算符后的数字
            String s2 = str1.substring(str1.indexOf(" ")+3);
    //        判断
    //        1. 如果s1、s2都不为空
            if(!s1.equals("")&&!s2.equals("")) {   //包含小数点运算
                double d1 = Double.parseDouble(s1);//则数字都是double类型
                double d2 = Double.parseDouble(s2);
                if (op.equals("+")) {   //如果是 +
                    result = d1 + d2;
                } else if (op.equals("-")) {   //如果是 -
                    result = d1 - d2;
                } else if (op.equals("*")) {   //如果是 *
                    result = d1 * d2;
                } else if (op.equals("/")) {   //如果是 /
                    if (d2 == 0) { //如果被除数是0
                        result = 0; //则结果是0
                    }
                    else {//否则执行正常是除法运算
                        result = d1 / d2;
                    }
                }
                if (!s1.contains(".") && !s2.contains(".") && !op.equals("/")) {//如果是整数类型
                    int r = (int) result; //都是整形
                    text.setText(str1 + " = " + r + "");
                } else{
                    text.setText(str1 + " = " + result + "");
                }
            }
    //            如果s1不是空,s2是空
            else if(!s1.equals("")&&s2.equals("")){
                double d1 = Double.parseDouble(s1);
                if (op.equals("+")){
                    result = d1;
                }
                if (op.equals("-")) {
                    result = d1;
                }
                if (op.equals("*")) {
                    result = 0;
                }
                if (op.equals("/")) {
                    result = 0;
                }
                if(!s1.contains(".")) {
                    int res = (int) result;
                    text.setText(str1 + " = " + res+"");
                }else {
                    text.setText(str1 + " = " + result+"");
                }
            }
    //        如果s1是空,s2不是空
            else if(s1.equals("")&& !s2.equals("")){
                double d2 = Double.parseDouble(s2);
                if(op.equals("+")){
                    result = 0+d2;
                }else if(op.equals("-")){
                    result = 0-d2;
                }else if(op.equals("*")){
                    result = 0;
                }else if(op.equals("/")){
                    result = 0;
                }
                if(!s1.contains(".") && !s2.contains(".")){
                    int res = (int) result;
                    text.setText(str1 + " = " + res + "");
                }else{
                    text.setText(str1 + " = " + result + "");
                }
            }else{
                text.setText("");
            }
        }
    }
    

    三、结果显示

    四、个人总结

     

    在计算器的案例中,实现了简单的页面设计、布局等,主要要解决的问题在于对输入内容的分割,以及对分割后的字符的逻辑运算。作为一个简易的计算器,我只实现了简单的单个运算符的运算,希望日后可以实现更复杂点的功能。

     

    展开全文
  • 本文实例为大家分享了Android studio设计简易计算器的具体代码,供大家参考,具体内容如下效果显示:第步,简单的界面布局xmlns:tools=...android:orientatio...
  • 设计一个计算器,实现0-9数字间的加减乘除运算 设计一个计算器,实现0-9数字间的加减乘除运算 提示: (1)采用JavaScript定义加减乘除方法; (2)通过document.getElementById()获得DOM中的元素并进行操作,也可以...
  • android计算器设计

    2013-01-08 13:11:42
    android计算器设计
  • android程序设计计算器

    2017-01-01 09:29:58
    android程序设计计算器,实现基本运算
  • 安卓AndroidStudio实现计算器

    千次阅读 2019-03-16 15:38:29
    基于AndroidStudio,实现一个简易的计算器(界面+简单的计算)。 下图是整体界面: 二、思路 首先设计界面,activity_main.xml 计算器界面,需要:文本框TextView——显示数字;数字、符号按钮Button <?...
  • 大学生课程设计 ------ 安卓Android软件设计(简单计算器01) Android嵌入式软件设计课程(代码+课程报告) 基本效果如下(所有相关文件在文末链接给出): ---------------------------------------------------我...
  • 大学生课程设计 ------ 安卓Android软件设计(简单计算器04) Android嵌入式软件设计课程(代码+课程报告) 基本效果如下(所有相关文件在文末链接给出): ---------------------------------------------------我...
  • 大学生课程设计 ------ 安卓Android软件设计(简单计算器03) Android嵌入式软件设计课程(代码+课程报告) 基本效果如下(所有相关文件在文末链接给出): ---------------------------------------------------我...
  • 大学生课程设计 ------ 安卓Android软件设计(简单计算器06) Android嵌入式软件设计课程(代码+课程报告) 基本效果如下(所有相关文件在文末链接给出): ---------------------------------------------------我...
  • 一个Android简单计算器

    2019-03-17 22:41:17
    应用网格布局设计一个计算器并实现其具体功能 界面设计: 界面采用网格布局,在界面设计区域设置一个6行4列的网格布局,第一行为显示数据的文本标签,第2行为清楚数据的按钮,第3~6行均划分为4列,共安排16个按钮,分别...
  • 该压缩包包含实现计算器的代码,可导入安卓端的手机中,实现在手机中使用。
  • 一个库存程序,好像是几个礼拜之前写的吧,是一个安卓实现的简易的计算器,写这个小程序之前,看了很多人写的计算器,觉得使用一个 EditText,并将它设置为不可编写,是比较好的解决方案。 设计思路主要是: ...
  • Android课程设计简易计算器and保存记录 精品文档 精品文档 收集于网络如有侵权请联系管理员删除 收集于网络如有侵权请联系管理员删除 精品文档 收集于网络如有侵权请联系管理员删除 Android课程设计简易计算器and...
  • Android studio做一个简易计算器

    千次阅读 2020-12-14 13:31:44
    Android studio做一个简易计算器 长话短说,先建立一个Android项目; 创建完成后打开activity_main.xml,构建我们的应用界面,输入以下代码: <?xml version="1.0" encoding="utf-8"?> <GridLayout ...
  • 这是一个android计算器

    2018-11-20 20:52:12
    包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包括应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等 包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包括应用...
  • 各个文件位置 activity_main.xml <?xml version="1.0" encoding="utf-8"?...androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ap...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,689
精华内容 2,675
关键字:

安卓设计一个计算器