用户云卷云舒 发表于 2024-11-9 18:48:46

Android studio实现简朴计算机界面

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

打开软件,新建一个空项目由于Android更新,需要选择Empty View  Activity https://i-blog.csdnimg.cn/blog_migrate/7736f6e2e01883e79dd9bea0c3d0014d.png
最好选build Grade
完成创建后等待grade加载完成,如果不停在grade停留需要分情况举行标题的办理

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


如果出现没有git错误 需要到官网下载好git安装后,并在设置界面配置好
https://i-blog.csdnimg.cn/blog_migrate/97c6893c661690b2aad8affaed7f9cf8.png情况做好了开始愉快的代码吧

Values部分



dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="button_font_size">30sp</dimen>
    <dimen name="button_height">75sp</dimen>
</resources> string.xml
<resources>
    <string name ="app_name">HX</string>
    <string name ="hello">你好,世界</string>
    <string name ="calculator">简单计算器</string>
    <string name ="cancel">CE</string>
    <string name ="zero">0</string>
    <string name ="one">1</string>
    <string name ="two">2</string>
    <string name ="three">3</string>
    <string name ="four">4</string>
    <string name ="five">5</string>
    <string name ="six">6</string>
    <string name ="seven">7</string>
    <string name ="eight">8</string>
    <string name ="nine">9</string>
    <string name ="divide">÷</string>
    <string name ="multiply">×</string>
    <string name ="minus">-</string>
    <string name ="reciprocal">1/x</string>
    <string name ="dot">.</string>
    <string name ="equal">=</string>
    <string name ="plus">+</string>
    <string name ="sqrt">√</string>
    <string name ="clear">C</string>
   
</resources> Activity_calculator.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:background="#EEEEEE"
    android:orientation="vertical"
    android:padding="5dp">
    <ScrollView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      tools:ignore="UselessParent">

      <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="@string/simple_calculator"
                android:textColor="@color/black"
                android:textSize="20sp" />

            <TextView
                android:id="@+id/tv_result"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                android:gravity="start|bottom"
                android:lines="3"
                android:text="@string/zero"
                android:textColor="@color/black"
                android:textSize="25sp" />

            <GridLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:columnCount="4"
                android:rowCount="5">

                <Button
                  android:id="@+id/btn_cancel"
                  android:layout_width="0dp"
                  android:layout_columnWeight="1"
                  android:layout_height="@dimen/button_height"
                  android:gravity="center"
                  android:text="@string/cancel"
                  android:textColor="@color/black"
                  android:textSize="@dimen/button_font_size" />

                <Button
                  android:id="@+id/btn_divide"
                  android:layout_width="0dp"
                  android:layout_height="@dimen/button_height"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/divide"
                  android:textColor="@color/black"
                  android:textSize="@dimen/button_font_size" />

                <Button
                  android:id="@+id/btn_multiply"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/multiply"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_clear"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/clear"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_seven"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/seven"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_eight"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/eight"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_nine"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/nine"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_plus"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/plus"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_four"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/four"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_five"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/five"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_six"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/six"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_minus"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/minus"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_one"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/one"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_two"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/two"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_three"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/three"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_sqrt"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/sqrt"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_reciprocal"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/reciprocal"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_zero"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/zero"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_dot"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/dot"
                  android:textColor="@color/black"
                  android:textSize="30sp" />

                <Button
                  android:id="@+id/btn_equal"
                  android:layout_width="0dp"
                  android:layout_height="75sp"
                  android:layout_columnWeight="1"
                  android:gravity="center"
                  android:text="@string/equal"
                  android:textColor="@color/black"
                  android:textSize="30sp" />


            </GridLayout>

      </LinearLayout>


    </ScrollView>
</LinearLayout> 末了是核心代码CalculatorActivity.java

package com.example.my1;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class CalculatorActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView tv_result;
    private String firstNum = "";
    privateString operator = "";
    privateString secondNum = "";
    privateString result = " ";
    privateString showText = "";
    @Override
    protectedvoidonCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_calculator);
      tv_result= findViewById(R.id.tv_result);
      findViewById(R.id.btn_cancel).setOnClickListener(this);
      findViewById(R.id.btn_divide).setOnClickListener(this);
      findViewById(R.id.btn_multiply).setOnClickListener(this);
      findViewById(R.id.btn_clear).setOnClickListener(this);
      findViewById(R.id.btn_seven).setOnClickListener(this);
      findViewById(R.id.btn_eight).setOnClickListener(this);
      findViewById(R.id.btn_nine).setOnClickListener(this);
      findViewById(R.id.btn_plus).setOnClickListener(this);
      findViewById(R.id.btn_four).setOnClickListener(this);
      findViewById(R.id.btn_five).setOnClickListener(this);
      findViewById(R.id.btn_six).setOnClickListener(this);
      findViewById(R.id.btn_minus).setOnClickListener(this);
      findViewById(R.id.btn_one).setOnClickListener(this);
      findViewById(R.id.btn_two).setOnClickListener(this);
      findViewById(R.id.btn_three).setOnClickListener(this);
      findViewById(R.id.btn_reciprocal).setOnClickListener(this);
      findViewById(R.id.btn_zero).setOnClickListener(this);
      findViewById(R.id.btn_dot).setOnClickListener(this);
      findViewById(R.id.btn_equal).setOnClickListener(this);
      findViewById(R.id.btn_sqrt).setOnClickListener(this);


    }
    @Override
   public   voidonClick(View v){
      String inputText;
      if (v.getId() == R.id.btn_sqrt){
            inputText = "√";

      }else {
            inputText = ((TextView) v).getText().toString();

      }
      int id = v.getId();
      if (id == R.id.btn_clear) {
            clear();
      } else if (id == R.id.btn_cancel) {
      } else if (id == R.id.btn_plus || id == R.id.btn_multiply || id == R.id.btn_divide) {
            operator = inputText;
            refreshText(showText + operator);
      } else if (id == R.id.btn_equal) {
            double calculate_result = calculateFour();
            refreshOperate(String.valueOf(calculate_result));
            refreshText(showText + "=" + result);
      } else if (id == R.id.btn_sqrt) {
            double sqrt_result = Math.sqrt(Double.parseDouble(firstNum));
            refreshOperate(String.valueOf(sqrt_result));
            refreshText(showText + "√" + result);
      } else if (id == R.id.btn_reciprocal) {
            double reciprocal_result = 1.0 / Double.parseDouble(firstNum);
            refreshOperate(String.valueOf(reciprocal_result));
            refreshText(showText + "/=" + result);
      } else {
            if (result.length() > 0 && operator.equals("")) {
                clear();
            }
            if (operator.equals("")) {
                firstNum = firstNum + inputText;

            } else {
                secondNum = secondNum + inputText;

            }
            if (showText.equals("0") && !inputText.equals(".")) {
                refreshText(inputText);
            } else {
                refreshText(showText + inputText);
            }
      }
    }
      private double calculateFour(){
      switch (operator){
            case"+":
                return Double.parseDouble(firstNum)+Double.parseDouble(secondNum);
            case"-":
                returnDouble.parseDouble(firstNum)-Double.parseDouble(secondNum);
            case "*":
               return Double.parseDouble(firstNum) *Double.parseDouble(secondNum);
            default:
                return Double.parseDouble(firstNum) / Double.parseDouble(secondNum);
      }
      }

      private voidclear(){
      refreshOperate("");
      refreshText("");
      }
      private void refreshOperate(String new_result){
      result = new_result;
      firstNum =result;
      secondNum = "";
      operator ="";
      }
      private void refreshText(String text){
      showText = text;
      tv_result.setText(showText);
      }

}
一些drawable的文件,背景色

button.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 背景色 -->
    <solid android:color="#FFB400"/>
    <corners
      android:radius="5dp"/>
</shape>
gray.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners
      android:radius="5dp"/>
    <solid
      android:color="#ffDEDEDE"/>
</shape>
selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/gray"
      android:state_pressed="true"/>
    <item android:drawable="@drawable/white"/>
</selector>
white.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners
      android:radius="5dp"/>
    <solid
      android:color="#ffffffff"/>
</shape>

末了运行项目即可
https://i-blog.csdnimg.cn/blog_migrate/7eefb4527537acbaaed9b964f8d56afe.png文件示例https://i-blog.csdnimg.cn/blog_migrate/74831a634ae7f5818624a9b25e3eedc7.png


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Android studio实现简朴计算机界面