android studio實(shí)現(xiàn)計(jì)算器
本文實(shí)例為大家分享了android studio實(shí)現(xiàn)計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
效果圖:
資源文件:
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
設(shè)置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
點(diǎn)擊按鈕時(shí)產(chǎn)生陰影效果
<?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
同理,等號(hào)的陰影效果
<?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”
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 從零開(kāi)始學(xué)android實(shí)現(xiàn)計(jì)算器功能示例分享(計(jì)算器源碼)
- Android開(kāi)發(fā)實(shí)現(xiàn)的簡(jiǎn)單計(jì)算器功能【附完整demo源碼下載】
- android計(jì)算器簡(jiǎn)單實(shí)現(xiàn)代碼
- Android計(jì)算器編寫(xiě)代碼
- android計(jì)時(shí)器,時(shí)間計(jì)算器的實(shí)現(xiàn)方法
- Android Studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器
- Android實(shí)現(xiàn)簡(jiǎn)易計(jì)算器小程序
- Android中使用GridLayout網(wǎng)格布局來(lái)制作簡(jiǎn)單的計(jì)算器App
- Android studio設(shè)計(jì)簡(jiǎn)易計(jì)算器
- Android簡(jiǎn)單實(shí)現(xiàn)計(jì)算器功能
相關(guān)文章
Android實(shí)戰(zhàn)教程第四篇之簡(jiǎn)單實(shí)現(xiàn)短信發(fā)送器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)教程第四篇之簡(jiǎn)單實(shí)現(xiàn)短信發(fā)送器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android 開(kāi)發(fā)中fragment預(yù)加載問(wèn)題
這篇文章主要介紹了Android 開(kāi)發(fā)中fragment預(yù)加載問(wèn)題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01在Android上實(shí)現(xiàn)HttpServer的示例代碼
本篇文章主要介紹了在Android上實(shí)現(xiàn)HttpServer的示例代碼,實(shí)現(xiàn)Android本地的微型服務(wù)器,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08Android Studio設(shè)置、改變字體和主題的方法
這篇文章主要介紹了Android Studio設(shè)置、改變字體和主題的方法,需要的朋友可以參考下2018-03-03基于標(biāo)準(zhǔn)http實(shí)現(xiàn)Android多文件上傳
這篇文章主要介紹了基于標(biāo)準(zhǔn)http實(shí)現(xiàn)Android多文件上傳的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Android使用BottomNavigationBar實(shí)現(xiàn)底部導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了Android使用BottomNavigationBar實(shí)現(xiàn)底部導(dǎo)航欄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02Android雷達(dá)掃描動(dòng)態(tài)界面制作
這篇文章主要為大家詳細(xì)介紹了Android雷達(dá)掃描動(dòng)態(tài)界面制作資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10