Android studio实现简朴计算机界面

打印 上一主题 下一主题

主题 847|帖子 847|积分 2541

使用Android studio 情况,要求java情况至少10.0(本次使用22.0)

打开软件,新建一个空项目由于Android更新,需要选择Empty View  Activity 

最好选build Grade
完成创建后等待grade加载完成,如果不停在grade停留需要分情况举行标题的办理

1.以前有过项目并下载了grade在设置界面勾选上面两项即可完成加载
2.没有举行过项目创建的需要等待下载完成才可以,最好不要用公用网络下载慢,或者到官网下载grade放在一个正常文件夹,在1.上配置好位置就行了



如果出现没有git错误 需要到官网下载好git安装后,并在设置界面配置好
情况做好了开始愉快的代码吧


Values部分



dimens.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.     <dimen name="button_font_size">30sp</dimen>
  4.     <dimen name="button_height">75sp</dimen>
  5. </resources>
复制代码
string.xml
  1. <resources>
  2.     <string name ="app_name">HX</string>
  3.     <string name ="hello">你好,世界</string>
  4.     <string name ="calculator">简单计算器</string>
  5.     <string name ="cancel">CE</string>
  6.     <string name ="zero">0</string>
  7.     <string name ="one">1</string>
  8.     <string name ="two">2</string>
  9.     <string name ="three">3</string>
  10.     <string name ="four">4</string>
  11.     <string name ="five">5</string>
  12.     <string name ="six">6</string>
  13.     <string name ="seven">7</string>
  14.     <string name ="eight">8</string>
  15.     <string name ="nine">9</string>
  16.     <string name ="divide">÷</string>
  17.     <string name ="multiply">×</string>
  18.     <string name ="minus">-</string>
  19.     <string name ="reciprocal">1/x</string>
  20.     <string name ="dot">.</string>
  21.     <string name ="equal">=</string>
  22.     <string name ="plus">+</string>
  23.     <string name ="sqrt">√</string>
  24.     <string name ="clear">C</string>
  25.    
  26. </resources>
复制代码
Activity_calculator.xml部分

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     xmlns:tools="http://schemas.android.com/tools"
  4.     android:layout_width="match_parent"
  5.     android:layout_height="match_parent"
  6.     android:background="#EEEEEE"
  7.     android:orientation="vertical"
  8.     android:padding="5dp">
  9.     <ScrollView
  10.         android:layout_width="match_parent"
  11.         android:layout_height="wrap_content"
  12.         tools:ignore="UselessParent">
  13.         <LinearLayout
  14.             android:layout_width="match_parent"
  15.             android:layout_height="wrap_content"
  16.             android:orientation="vertical">
  17.             <TextView
  18.                 android:layout_width="match_parent"
  19.                 android:layout_height="wrap_content"
  20.                 android:gravity="center"
  21.                 android:text="@string/simple_calculator"
  22.                 android:textColor="@color/black"
  23.                 android:textSize="20sp" />
  24.             <TextView
  25.                 android:id="@+id/tv_result"
  26.                 android:layout_width="match_parent"
  27.                 android:layout_height="wrap_content"
  28.                 android:background="@color/white"
  29.                 android:gravity="start|bottom"
  30.                 android:lines="3"
  31.                 android:text="@string/zero"
  32.                 android:textColor="@color/black"
  33.                 android:textSize="25sp" />
  34.             <GridLayout
  35.                 android:layout_width="match_parent"
  36.                 android:layout_height="wrap_content"
  37.                 android:columnCount="4"
  38.                 android:rowCount="5">
  39.                 <Button
  40.                     android:id="@+id/btn_cancel"
  41.                     android:layout_width="0dp"
  42.                     android:layout_columnWeight="1"
  43.                     android:layout_height="@dimen/button_height"
  44.                     android:gravity="center"
  45.                     android:text="@string/cancel"
  46.                     android:textColor="@color/black"
  47.                     android:textSize="@dimen/button_font_size" />
  48.                 <Button
  49.                     android:id="@+id/btn_divide"
  50.                     android:layout_width="0dp"
  51.                     android:layout_height="@dimen/button_height"
  52.                     android:layout_columnWeight="1"
  53.                     android:gravity="center"
  54.                     android:text="@string/divide"
  55.                     android:textColor="@color/black"
  56.                     android:textSize="@dimen/button_font_size" />
  57.                 <Button
  58.                     android:id="@+id/btn_multiply"
  59.                     android:layout_width="0dp"
  60.                     android:layout_height="75sp"
  61.                     android:layout_columnWeight="1"
  62.                     android:gravity="center"
  63.                     android:text="@string/multiply"
  64.                     android:textColor="@color/black"
  65.                     android:textSize="30sp" />
  66.                 <Button
  67.                     android:id="@+id/btn_clear"
  68.                     android:layout_width="0dp"
  69.                     android:layout_height="75sp"
  70.                     android:layout_columnWeight="1"
  71.                     android:gravity="center"
  72.                     android:text="@string/clear"
  73.                     android:textColor="@color/black"
  74.                     android:textSize="30sp" />
  75.                 <Button
  76.                     android:id="@+id/btn_seven"
  77.                     android:layout_width="0dp"
  78.                     android:layout_height="75sp"
  79.                     android:layout_columnWeight="1"
  80.                     android:gravity="center"
  81.                     android:text="@string/seven"
  82.                     android:textColor="@color/black"
  83.                     android:textSize="30sp" />
  84.                 <Button
  85.                     android:id="@+id/btn_eight"
  86.                     android:layout_width="0dp"
  87.                     android:layout_height="75sp"
  88.                     android:layout_columnWeight="1"
  89.                     android:gravity="center"
  90.                     android:text="@string/eight"
  91.                     android:textColor="@color/black"
  92.                     android:textSize="30sp" />
  93.                 <Button
  94.                     android:id="@+id/btn_nine"
  95.                     android:layout_width="0dp"
  96.                     android:layout_height="75sp"
  97.                     android:layout_columnWeight="1"
  98.                     android:gravity="center"
  99.                     android:text="@string/nine"
  100.                     android:textColor="@color/black"
  101.                     android:textSize="30sp" />
  102.                 <Button
  103.                     android:id="@+id/btn_plus"
  104.                     android:layout_width="0dp"
  105.                     android:layout_height="75sp"
  106.                     android:layout_columnWeight="1"
  107.                     android:gravity="center"
  108.                     android:text="@string/plus"
  109.                     android:textColor="@color/black"
  110.                     android:textSize="30sp" />
  111.                 <Button
  112.                     android:id="@+id/btn_four"
  113.                     android:layout_width="0dp"
  114.                     android:layout_height="75sp"
  115.                     android:layout_columnWeight="1"
  116.                     android:gravity="center"
  117.                     android:text="@string/four"
  118.                     android:textColor="@color/black"
  119.                     android:textSize="30sp" />
  120.                 <Button
  121.                     android:id="@+id/btn_five"
  122.                     android:layout_width="0dp"
  123.                     android:layout_height="75sp"
  124.                     android:layout_columnWeight="1"
  125.                     android:gravity="center"
  126.                     android:text="@string/five"
  127.                     android:textColor="@color/black"
  128.                     android:textSize="30sp" />
  129.                 <Button
  130.                     android:id="@+id/btn_six"
  131.                     android:layout_width="0dp"
  132.                     android:layout_height="75sp"
  133.                     android:layout_columnWeight="1"
  134.                     android:gravity="center"
  135.                     android:text="@string/six"
  136.                     android:textColor="@color/black"
  137.                     android:textSize="30sp" />
  138.                 <Button
  139.                     android:id="@+id/btn_minus"
  140.                     android:layout_width="0dp"
  141.                     android:layout_height="75sp"
  142.                     android:layout_columnWeight="1"
  143.                     android:gravity="center"
  144.                     android:text="@string/minus"
  145.                     android:textColor="@color/black"
  146.                     android:textSize="30sp" />
  147.                 <Button
  148.                     android:id="@+id/btn_one"
  149.                     android:layout_width="0dp"
  150.                     android:layout_height="75sp"
  151.                     android:layout_columnWeight="1"
  152.                     android:gravity="center"
  153.                     android:text="@string/one"
  154.                     android:textColor="@color/black"
  155.                     android:textSize="30sp" />
  156.                 <Button
  157.                     android:id="@+id/btn_two"
  158.                     android:layout_width="0dp"
  159.                     android:layout_height="75sp"
  160.                     android:layout_columnWeight="1"
  161.                     android:gravity="center"
  162.                     android:text="@string/two"
  163.                     android:textColor="@color/black"
  164.                     android:textSize="30sp" />
  165.                 <Button
  166.                     android:id="@+id/btn_three"
  167.                     android:layout_width="0dp"
  168.                     android:layout_height="75sp"
  169.                     android:layout_columnWeight="1"
  170.                     android:gravity="center"
  171.                     android:text="@string/three"
  172.                     android:textColor="@color/black"
  173.                     android:textSize="30sp" />
  174.                 <Button
  175.                     android:id="@+id/btn_sqrt"
  176.                     android:layout_width="0dp"
  177.                     android:layout_height="75sp"
  178.                     android:layout_columnWeight="1"
  179.                     android:gravity="center"
  180.                     android:text="@string/sqrt"
  181.                     android:textColor="@color/black"
  182.                     android:textSize="30sp" />
  183.                 <Button
  184.                     android:id="@+id/btn_reciprocal"
  185.                     android:layout_width="0dp"
  186.                     android:layout_height="75sp"
  187.                     android:layout_columnWeight="1"
  188.                     android:gravity="center"
  189.                     android:text="@string/reciprocal"
  190.                     android:textColor="@color/black"
  191.                     android:textSize="30sp" />
  192.                 <Button
  193.                     android:id="@+id/btn_zero"
  194.                     android:layout_width="0dp"
  195.                     android:layout_height="75sp"
  196.                     android:layout_columnWeight="1"
  197.                     android:gravity="center"
  198.                     android:text="@string/zero"
  199.                     android:textColor="@color/black"
  200.                     android:textSize="30sp" />
  201.                 <Button
  202.                     android:id="@+id/btn_dot"
  203.                     android:layout_width="0dp"
  204.                     android:layout_height="75sp"
  205.                     android:layout_columnWeight="1"
  206.                     android:gravity="center"
  207.                     android:text="@string/dot"
  208.                     android:textColor="@color/black"
  209.                     android:textSize="30sp" />
  210.                 <Button
  211.                     android:id="@+id/btn_equal"
  212.                     android:layout_width="0dp"
  213.                     android:layout_height="75sp"
  214.                     android:layout_columnWeight="1"
  215.                     android:gravity="center"
  216.                     android:text="@string/equal"
  217.                     android:textColor="@color/black"
  218.                     android:textSize="30sp" />
  219.             </GridLayout>
  220.         </LinearLayout>
  221.     </ScrollView>
  222. </LinearLayout>
复制代码
末了是核心代码CalculatorActivity.java

  1. package com.example.my1;
  2. import android.os.Bundle;
  3. import android.view.View;
  4. import android.widget.TextView;
  5. import androidx.appcompat.app.AppCompatActivity;
  6. public class CalculatorActivity extends AppCompatActivity implements View.OnClickListener {
  7.     private TextView tv_result;
  8.     private String firstNum = "";
  9.     private  String operator = "";
  10.     private  String secondNum = "";
  11.     private  String result = " ";
  12.     private  String showText = "";
  13.     @Override
  14.     protected  void  onCreate(Bundle savedInstanceState){
  15.         super.onCreate(savedInstanceState);
  16.         setContentView(R.layout.activity_calculator);
  17.         tv_result  = findViewById(R.id.tv_result);
  18.         findViewById(R.id.btn_cancel).setOnClickListener(this);
  19.         findViewById(R.id.btn_divide).setOnClickListener(this);
  20.         findViewById(R.id.btn_multiply).setOnClickListener(this);
  21.         findViewById(R.id.btn_clear).setOnClickListener(this);
  22.         findViewById(R.id.btn_seven).setOnClickListener(this);
  23.         findViewById(R.id.btn_eight).setOnClickListener(this);
  24.         findViewById(R.id.btn_nine).setOnClickListener(this);
  25.         findViewById(R.id.btn_plus).setOnClickListener(this);
  26.         findViewById(R.id.btn_four).setOnClickListener(this);
  27.         findViewById(R.id.btn_five).setOnClickListener(this);
  28.         findViewById(R.id.btn_six).setOnClickListener(this);
  29.         findViewById(R.id.btn_minus).setOnClickListener(this);
  30.         findViewById(R.id.btn_one).setOnClickListener(this);
  31.         findViewById(R.id.btn_two).setOnClickListener(this);
  32.         findViewById(R.id.btn_three).setOnClickListener(this);
  33.         findViewById(R.id.btn_reciprocal).setOnClickListener(this);
  34.         findViewById(R.id.btn_zero).setOnClickListener(this);
  35.         findViewById(R.id.btn_dot).setOnClickListener(this);
  36.         findViewById(R.id.btn_equal).setOnClickListener(this);
  37.         findViewById(R.id.btn_sqrt).setOnClickListener(this);
  38.     }
  39.     @Override
  40.    public   void  onClick(View v){
  41.         String inputText;
  42.         if (v.getId() == R.id.btn_sqrt){
  43.             inputText = "√";
  44.         }else {
  45.             inputText = ((TextView) v).getText().toString();
  46.         }
  47.         int id = v.getId();
  48.         if (id == R.id.btn_clear) {
  49.             clear();
  50.         } else if (id == R.id.btn_cancel) {
  51.         } else if (id == R.id.btn_plus || id == R.id.btn_multiply || id == R.id.btn_divide) {
  52.             operator = inputText;
  53.             refreshText(showText + operator);
  54.         } else if (id == R.id.btn_equal) {
  55.             double calculate_result = calculateFour();
  56.             refreshOperate(String.valueOf(calculate_result));
  57.             refreshText(showText + "=" + result);
  58.         } else if (id == R.id.btn_sqrt) {
  59.             double sqrt_result = Math.sqrt(Double.parseDouble(firstNum));
  60.             refreshOperate(String.valueOf(sqrt_result));
  61.             refreshText(showText + "√" + result);
  62.         } else if (id == R.id.btn_reciprocal) {
  63.             double reciprocal_result = 1.0 / Double.parseDouble(firstNum);
  64.             refreshOperate(String.valueOf(reciprocal_result));
  65.             refreshText(showText + "/=" + result);
  66.         } else {
  67.             if (result.length() > 0 && operator.equals("")) {
  68.                 clear();
  69.             }
  70.             if (operator.equals("")) {
  71.                 firstNum = firstNum + inputText;
  72.             } else {
  73.                 secondNum = secondNum + inputText;
  74.             }
  75.             if (showText.equals("0") && !inputText.equals(".")) {
  76.                 refreshText(inputText);
  77.             } else {
  78.                 refreshText(showText + inputText);
  79.             }
  80.         }
  81.     }
  82.         private double calculateFour(){
  83.         switch (operator){
  84.             case"+":
  85.                 return Double.parseDouble(firstNum)+Double.parseDouble(secondNum);
  86.             case"-":
  87.                 return  Double.parseDouble(firstNum)-Double.parseDouble(secondNum);
  88.             case "*":
  89.                return Double.parseDouble(firstNum) *Double.parseDouble(secondNum);
  90.             default:
  91.                 return Double.parseDouble(firstNum) / Double.parseDouble(secondNum);
  92.         }
  93.         }
  94.         private void  clear(){
  95.         refreshOperate("");
  96.         refreshText("");
  97.         }
  98.         private void refreshOperate(String new_result){
  99.         result = new_result;
  100.         firstNum =result;
  101.         secondNum = "";
  102.         operator ="";
  103.         }
  104.         private void refreshText(String text){
  105.         showText = text;
  106.         tv_result.setText(showText);
  107.         }
  108. }
复制代码
一些drawable的文件,背景色

button.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <!-- 背景色 -->
  4.     <solid android:color="#FFB400"/>
  5.     <corners
  6.         android:radius="5dp"/>
  7. </shape>
复制代码
gray.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <corners
  4.         android:radius="5dp"/>
  5.     <solid
  6.         android:color="#ffDEDEDE"/>
  7. </shape>
复制代码
selector.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <item android:drawable="@drawable/gray"
  4.         android:state_pressed="true"/>
  5.     <item android:drawable="@drawable/white"/>
  6. </selector>
复制代码
white.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <corners
  4.         android:radius="5dp"/>
  5.     <solid
  6.         android:color="#ffffffff"/>
  7. </shape>
复制代码
末了运行项目即可
文件示例



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表