IT评测·应用市场-qidao123.com
标题:
Android studio实现简朴计算机界面
[打印本页]
作者:
用户云卷云舒
时间:
2024-11-9 18:48
标题:
Android studio实现简朴计算机界面
使用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
<?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 = "";
private String operator = "";
private String secondNum = "";
private String result = " ";
private String showText = "";
@Override
protected void onCreate(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 void onClick(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"-":
return Double.parseDouble(firstNum)-Double.parseDouble(secondNum);
case "*":
return Double.parseDouble(firstNum) *Double.parseDouble(secondNum);
default:
return Double.parseDouble(firstNum) / Double.parseDouble(secondNum);
}
}
private void clear(){
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>
复制代码
末了运行项目即可
文件示例
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4