android studio实现计算器
作者:Super__M
这篇文章主要为大家详细介绍了android studio实现计算器的具体方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了android studio实现计算器的具体代码,供大家参考,具体内容如下
效果图:
资源文件:
color.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <color name="white">#FFFFFF</color> <color name="black">#000000</color> <color name="zi">#FFFFFF</color> <color name="gray">#BEBEBE</color> <color name="green">#9AFF9A</color> <color name="littlegreen">#F0FFFF</color> </resources>
white.xml
设置input text的填充色为白色
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="5dp"/> <solid android:color="@color/white"/> </shape>
selector.xml
点击按钮时产生阴影效果
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/littlegreen" android:state_pressed="true"/> <item android:drawable="@color/white" /> </selector>
equeal.xml
同理,等号的阴影效果
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/white" android:state_pressed="true"/> <item android:drawable="@color/littlegreen" /> </selector>
布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/jisuanqi" tools:context="com.example.administrator.calculate.MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingTop="20dp"> <EditText android:id="@+id/input" android:layout_width="fill_parent" android:layout_height="60dp" android:background="@drawable/white" android:editable="false" android:gravity="right|bottom" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:orientation="horizontal" android:gravity="center"> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="C" android:background="@drawable/selector" android:gravity="center" android:textSize="25sp" android:id="@+id/clear" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="←" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="23sp" android:id="@+id/delete" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="×" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/cheng" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="÷" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/clu" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:orientation="horizontal" android:gravity="center"> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="7" android:background="@drawable/selector" android:gravity="center" android:textSize="25sp" android:id="@+id/num7" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="8" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/num8" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="9" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/num9" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="-" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/charjian" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:orientation="horizontal" android:gravity="center"> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="4" android:background="@drawable/selector" android:gravity="center" android:textSize="25sp" android:id="@+id/num4" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="5" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/num5" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="6" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/num6" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="+" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/charadd" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" android:layout_marginTop="10dp" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:layout_width="65dp" android:layout_height="65dp" android:background="@drawable/selector" android:text="1" android:gravity="center" android:textSize="25sp" android:id="@+id/num1" /> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="2" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/num2"/> <Button android:layout_width="65dp" android:layout_height="65dp" android:text="3" android:background="@drawable/selector" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/num3"/> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="10dp"> <Button android:id="@+id/num0" android:layout_width="140dp" android:layout_height="65dp" android:text="0" android:background="@drawable/selector" android:gravity="center" android:textSize="25sp" /> <Button android:id="@+id/dian" android:layout_width="65dp" android:layout_height="65dp" android:layout_marginLeft="10dp" android:background="@drawable/selector" android:gravity="center" android:text="." android:textSize="25sp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:layout_width="65dp" android:layout_height="140dp" android:text="=" android:background="@drawable/equal" android:gravity="center" android:layout_marginLeft="10dp" android:textSize="25sp" android:id="@+id/equai"/> </LinearLayout> </LinearLayout> </LinearLayout>
java代码
package com.example.administrator.calculate; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Toast; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class MainActivity extends AppCompatActivity { @BindView(R.id.input) EditText input; @BindView(R.id.clear) Button clear; @BindView(R.id.delete) Button delete; @BindView(R.id.cheng) Button cheng; @BindView(R.id.clu) Button chu; @BindView(R.id.num7) Button num7; @BindView(R.id.num8) Button num8; @BindView(R.id.num9) Button num9; @BindView(R.id.charjian) Button charjian; @BindView(R.id.num4) Button num4; @BindView(R.id.num5) Button num5; @BindView(R.id.num6) Button num6; @BindView(R.id.charadd) Button charadd; @BindView(R.id.num1) Button num1; @BindView(R.id.num2) Button num2; @BindView(R.id.num3) Button num3; @BindView(R.id.num0) Button num0; @BindView(R.id.dian) Button dian; @BindView(R.id.equai) Button equal; private String ss=""; private boolean fu=false; private boolean num=false; private boolean point=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); } @OnClick({R.id.clear, R.id.delete, R.id.cheng, R.id.clu, R.id.num7, R.id.num8, R.id.num9, R.id.charjian, R.id.num4, R.id.num5, R.id.num6, R.id.charadd, R.id.num1, R.id.num2, R.id.num3, R.id.num0, R.id.dian, R.id.equai}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.clear: { ss=""; input.setText(ss); } break; case R.id.delete: { if(ss.indexOf(" ")==ss.length()-3) { ss= ss.substring(0,ss.length() - 2); } if(ss.length()>0) { ss= ss.substring(0,ss.length() - 1); } input.setText(ss); } break; case R.id.cheng: { if(ss.length()==0) { break; } if(ss.contains(" ")) { if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break; getResult(); } fu=true; ss+=" × "; input.setText(ss); } break; case R.id.clu: { if(ss.length()==0) { break; } if(ss.contains(" ")) { if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break; getResult(); } fu=true; ss+=" ÷ "; input.setText(ss); } break; case R.id.num7: { ss+="7"; input.setText(ss); } break; case R.id.num8: { ss+="8"; input.setText(ss); } break; case R.id.num9: { ss+="9"; input.setText(ss); } break; case R.id.charjian: { if(ss.length()==0) { break; } if(ss.contains(" ")) { if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break; getResult(); } fu=true; ss+=" - "; input.setText(ss); } break; case R.id.num4: { ss+="4"; input.setText(ss); } break; case R.id.num5: { ss+="5"; input.setText(ss); } break; case R.id.num6: { ss+="6"; input.setText(ss); } break; case R.id.charadd: { if(ss.length()==0) { break; } if(ss.contains(" ")) { if(ss.indexOf(" ")==ss.length()-3||ss.indexOf(" ")==ss.length()-2||ss.indexOf(" ")==ss.length()-1) break; getResult(); } fu=true; ss+=" + "; input.setText(ss); } break; case R.id.num1: { ss+="1"; input.setText(ss); } break; case R.id.num2: { ss+="2"; input.setText(ss); } break; case R.id.num3: { ss+="3"; input.setText(ss); } break; case R.id.num0: { ss+="0"; input.setText(ss); } break; case R.id.dian: { if(ss.length()==0||ss.indexOf(" ")==ss.length()-3||ss.lastIndexOf(".")>ss.indexOf(" ")) { break; } else { ss+="."; input.setText(ss); } } break; case R.id.equai: getResult(); break; } } private void getResult() { double result=0; if(ss==null||ss.equals("")) return; if(!ss.contains(" ")) return; String s1=ss.substring(0,ss.indexOf(" ")); String op=ss.substring(ss.indexOf(" ")+1,ss.indexOf(" ")+2); String s2=ss.substring(ss.indexOf(" ")+3); if(!s1.equals("")&&!s2.equals("")) { double d1=Double.parseDouble(s1); double d2=Double.parseDouble(s2 ); switch (op) { case "+": result=d1+d2;break; case "-": result=d1-d2;break; case "×": result=d1*d2;break; case "÷": { if(d2==0) { Toast.makeText(this, "不能除以零", Toast.LENGTH_SHORT).show(); break; } result=d1/d2*1.0; } break; } int r = (int) result; if(r==result) { input.setText(""+r); ss=""+r; } else { input.setText(result+""); ss=""+result; } } } }
在AndroidManifest.xml文件中activity 后面添加
android:theme=”@style/Theme.AppCompat.DayNight.NoActionBar”
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。