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í)有所幫助,也希望大家多多支持腳本之家。
- 從零開始學(xué)android實(shí)現(xiàn)計(jì)算器功能示例分享(計(jì)算器源碼)
- Android開發(fā)實(shí)現(xiàn)的簡(jiǎn)單計(jì)算器功能【附完整demo源碼下載】
- android計(jì)算器簡(jiǎn)單實(shí)現(xiàn)代碼
- Android計(jì)算器編寫代碼
- 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自定義評(píng)分控件的完整實(shí)例
在Android開發(fā)中,我們經(jīng)常會(huì)用到對(duì)商家或者商品的評(píng)價(jià),運(yùn)用星星進(jìn)行打分,下面這篇文章主要給大家介紹了關(guān)于Android自定義評(píng)分控件的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Android實(shí)現(xiàn)360手機(jī)助手底部的動(dòng)畫菜單
這篇文章給大家分享了利用Android實(shí)現(xiàn)360手機(jī)助手底部的動(dòng)畫菜單效果,文中給出了實(shí)例代碼,這樣對(duì)大家的學(xué)習(xí)或者理解更有幫助,有需要的朋友們下面來(lái)一起看看吧。2016-10-10
Android中ActionBar以及menu的代碼設(shè)置樣式
這篇文章主要介紹了Android中ActionBar以及menu的代碼設(shè)置樣式的相關(guān)資料,需要的朋友可以參考下2015-07-07
android TextView設(shè)置中文字體加粗實(shí)現(xiàn)方法
android TextView設(shè)置中文字體加粗如何實(shí)現(xiàn),接下來(lái)介紹實(shí)現(xiàn)方法,有需要的朋友可以參考下2013-01-01
Android開發(fā)實(shí)現(xiàn)ListView和adapter配合顯示圖片和文字列表功能示例
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)ListView和adapter配合顯示圖片和文字列表功能,涉及Android使用ListView結(jié)合adapter適配器實(shí)現(xiàn)圖文顯示功能相關(guān)的布局、解析、權(quán)限控制等操作技巧,需要的朋友可以參考下2019-04-04
Android?IntentFilter的匹配規(guī)則示例詳解
這篇文章主要為大家介紹了Android?IntentFilter的匹配規(guī)則示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
實(shí)例詳解Android文件存儲(chǔ)數(shù)據(jù)方式
總體的來(lái)講,數(shù)據(jù)存儲(chǔ)方式有三種:一個(gè)是文件,一個(gè)是數(shù)據(jù)庫(kù),另一個(gè)則是網(wǎng)絡(luò)。下面通過(guò)本文給大家介紹Android文件存儲(chǔ)數(shù)據(jù)方式,對(duì)android文件存儲(chǔ)數(shù)據(jù)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01
Andriod Studio實(shí)現(xiàn)保存QQ密碼功能(案例代碼詳解)
這篇文章主要介紹了Andriod Studio實(shí)現(xiàn)保存QQ密碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Android Flutter實(shí)現(xiàn)圖片滑動(dòng)切換效果
Flutter 為了簡(jiǎn)化開發(fā),提供了不少轉(zhuǎn)換動(dòng)畫組件,這類組件通常命名為 xxTransition。本篇要介紹的就是 SlideTransition,并用它實(shí)現(xiàn)圖片滑動(dòng)切換效果,感興趣的可以了解一下2022-04-04

