国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android系統(tǒng)下的三、四等水準(zhǔn)記錄軟件開發(fā)

2016-06-12 09:20
工程與建設(shè) 2016年1期
關(guān)鍵詞:Android系統(tǒng)界面設(shè)計(jì)

趙 健

(安徽省水利水電勘測(cè)設(shè)計(jì)院勘測(cè)分院,安徽 蚌埠 233000)

?

Android系統(tǒng)下的三、四等水準(zhǔn)記錄軟件開發(fā)

趙健

(安徽省水利水電勘測(cè)設(shè)計(jì)院勘測(cè)分院,安徽 蚌埠233000)

摘要:隨著科學(xué)技術(shù)快速發(fā)展,雖然測(cè)量設(shè)備和測(cè)繪方法都發(fā)生較大的變化,但是水準(zhǔn)記錄作為傳統(tǒng)的測(cè)量手段仍然具有不可替代的精準(zhǔn)性,而其相關(guān)軟件的更新迭代也更容易被人們忽視。文章使用的PDA水準(zhǔn)記錄軟件,在數(shù)據(jù)處理、資料打印及歸檔上已有一套成熟的方案,但是PDA設(shè)備已近淘汰,考慮到智能手機(jī)的高度普及和便攜性,開發(fā)了Android系統(tǒng)下的水準(zhǔn)記錄軟件。關(guān)鍵詞:水準(zhǔn)記錄軟件;Android系統(tǒng);界面設(shè)計(jì)

1功能介紹

本軟件可對(duì)三、四等水準(zhǔn)測(cè)量進(jìn)行觀測(cè)數(shù)據(jù)記錄,四等水準(zhǔn)路線中支持“單程雙轉(zhuǎn)點(diǎn)”模式。在數(shù)據(jù)錄入時(shí),軟件將“監(jiān)聽”用戶的輸入行為,自動(dòng)切換輸入焦點(diǎn),并實(shí)時(shí)進(jìn)行數(shù)據(jù)檢查,提示超限的讀數(shù),同時(shí)可對(duì)奈鮑爾法i角檢驗(yàn)數(shù)據(jù)進(jìn)行檢查和記錄。在軟件編寫過程中著重考慮記錄員的操作體驗(yàn),如最大視距為100 m的情況下,當(dāng)距離記錄到2位數(shù),并且大于10的時(shí)候則自動(dòng)將光標(biāo)移到下一個(gè)輸入框,否則等待用戶繼續(xù)輸入。諸多類似這樣的設(shè)計(jì)將盡可能地減少記錄過程中的多余動(dòng)作。

2環(huán)境搭建

在Android開發(fā)環(huán)境中,較常用的為Eclipse IDE,除此之外也可以使用IntelliJ IDEA。本文簡(jiǎn)單介紹Eclipse開發(fā)環(huán)境要素組成[1-4]。

(1) JDK(Java SE Development Kit)。也就是Java開發(fā)工具箱,它是Java的核心,包含了Java的運(yùn)行環(huán)境(Java Runtime Environment),一堆Java工具和給開發(fā)者開發(fā)應(yīng)用程序時(shí)調(diào)用的Java類庫(kù)。本文使用的是JDK 8 Update 60,安裝并為其配置環(huán)境變量即可。

(2) Android SDK(Software Development Kit)。它包含了模擬器、教程、API文檔和示例代碼等內(nèi)容,為構(gòu)建、調(diào)試Android應(yīng)用程序提供了所需的開發(fā)工具。打開Android SDK安裝目錄下的SDK Manager,可以為不同版本的安卓系統(tǒng)下載對(duì)應(yīng)的SDK包,以便于在各個(gè)不同平臺(tái)下進(jìn)行調(diào)試。

(3) Eclipse和ADT插件。 Eclipse是Java應(yīng)用程序及Android開發(fā)的IDE(集成開發(fā)環(huán)境),ADT(Android Development Tools)是Google專門為Eclipse定制的一個(gè)插件,用來將Eclipse和Android SDK關(guān)聯(lián)起來。

為了方便程序員對(duì)Android開發(fā)環(huán)境的配置,Google提供了一種集成式IDE:ADT-Bundle for Windows,它包含了上述除JDK以外的所有東西,直接解壓然后更新下Android SDK即可使用。但是,更新SDK時(shí),先在Eclipse-幫助-Install New Software-what is already installed中查看ADT版本,確保該版本和SDK Manager安裝包列表內(nèi)的Tools-Android SDK Tools 版本號(hào)一致,否則會(huì)有版本不匹配的提示;當(dāng)Intel CPU支持VT虛擬技術(shù)時(shí),可以在SDK Manager中下載Intel x86 Emulator Accelerator,以使用HAXM技術(shù)為模擬器加速[5]。

3界面及功能實(shí)現(xiàn)

3.1界面設(shè)計(jì)

Android提供了一種非常簡(jiǎn)單、方便的方法用于控制UI界面,該方法采用XML文件進(jìn)行界面布局,從而將布局界面的代碼和邏輯控制的Java代碼分離開來,使程序的結(jié)構(gòu)更加清晰、明了。

使用XML布局文件控制UI界面可以分為以下2個(gè)關(guān)鍵步驟:

(1) 在Android應(yīng)用的reslayout目錄下編寫XML布局文件,可以采用任何符合Java命名規(guī)則的文件名。創(chuàng)建后,R.java會(huì)自動(dòng)收錄該布局資源。

(2) 在Activity中使用Java代碼實(shí)現(xiàn)XML文件中布局的內(nèi)容:setContentView(R.layout.activity_welcom),在代碼中,activity_welcome是本軟件首頁(yè)面XML布局文件的文件名。

由于Android設(shè)備的分辨率和屏幕尺寸較為混亂,因此,有必要為不同分辨率的設(shè)備單獨(dú)編寫布局文件?,F(xiàn)在多數(shù)手機(jī)已經(jīng)采用了1 920×1 080的分辨率,為了界面能夠正常顯示,需要在res目錄下新建一個(gè)layout-xxhdpi的文件夾,在里面為軟件的每個(gè)界面重新編寫XML布局文件。軟件運(yùn)行時(shí)將根據(jù)手機(jī)的分辨率自動(dòng)調(diào)用相應(yīng)文件夾內(nèi)的布局文件進(jìn)行顯示[6-7]。

在本軟件部分代碼中布局了一個(gè)“選擇…”的按鈕和顯示文件路徑的可編輯文本框,如圖1所示。

圖1 軟件界面

3.2功能實(shí)現(xiàn)

在水準(zhǔn)記錄過程中,為了提升用戶使用體驗(yàn),軟件需要對(duì)錄入的數(shù)據(jù)進(jìn)行分析,并輔助用戶進(jìn)行輸入焦點(diǎn)切換和超限提醒。以水準(zhǔn)尺的后視紅面讀數(shù)為例,首先限定該文本框只能輸入整數(shù),且長(zhǎng)度為4個(gè)字符,然后監(jiān)聽這個(gè)文本框的字符變化,當(dāng)其為4個(gè)字符(即已經(jīng)輸入完畢)時(shí)將焦點(diǎn)切換到下一目標(biāo);然后再為該文本框添加一個(gè)焦點(diǎn)切換監(jiān)聽器,并在其內(nèi)判斷讀數(shù)是否超限。以下為部分代碼:

DhouHong.setOnFocusChangeListener(new OnFocusChangeListener() {

EditText DhouHei =(EditText)findViewById(R.id.DhouHei); //--后視黑面

EditText DqianHei =(EditText)findViewById(R.id.DqianHei);//--前視黑面

EditText DhouHong =(EditText)findViewById(R.id.DhouHong);//--后視紅面

EditText DqianHong =(EditText)findViewById(R.id.DqianHong);//--前視紅面

public void onFocusChange(View v, boolean hasFocus) {if(!TextUtils.isEmpty(DhouHei.getText())&&!TextUtils.isEmpty(DhouHong.getText()))//--后視讀數(shù)不為空

{

double dblhouHei=Double.parseDouble(DhouHei.getText().toString());

double dblhouHong=Double.parseDouble(DhouHong.getText().toString());if((dblhouHei+hccs-dblhouHong)>chk30||(dblhouHong-dblhouHei-hccs)>chk30)

{

Toast.makeText(DanChengActivity.this, “中絲讀數(shù)超限”,Toast.LENGTH_SHORT).show();

((EditText)findViewById(R.id.DhouHong)).setText("");

}else if(!TextUtils.isEmpty(DqianHei.getText())&&!TextUtils.isEmpty(DqianHong.getText()))

{

double dblqianHei=Double.parseDouble(DqianHei.getText().toString());

double dblqianHong=Double.parseDouble(DqianHong.getText().toString());

if((dblhouHei-dblqianHei-dblhouHong+dblqianHong)>(qccs-hccs+chk50)||(dblhouHei-dblqianHei-dblhouHong+dblqianHong)<(qccs-hccs-chk50))

{

Toast.makeText(DanChengActivity.this, “黑紅面高差超限”,Toast.LENGTH_SHORT).show();

((EditText)findViewById(R.id.DhouHong)).setText("");

}

在Android中,Activity代表著手機(jī)屏幕的一屏,每個(gè)應(yīng)用程序內(nèi)可以有多個(gè)Activity,本軟件中就有5個(gè)。當(dāng)在一個(gè)Activity中啟動(dòng)另一個(gè)Activity時(shí),經(jīng)常需要傳遞一些數(shù)據(jù)。如用戶選擇好了水準(zhǔn)等級(jí),并填寫好前、后尺常數(shù)等參數(shù),點(diǎn)擊“開始”按鈕進(jìn)行記錄時(shí),需要把這些信息“告訴”新打開的水準(zhǔn)記錄頁(yè)面,以便進(jìn)行數(shù)據(jù)檢查。這時(shí)候就可以通過Intent來實(shí)現(xiàn)。因?yàn)镮ntent通常被稱為是2個(gè)Activity之間的信使,通過將要傳遞的數(shù)據(jù)保存在Intent中,就可以將其傳遞到另一個(gè)Activity中[8-10]。

在Android中,可以先將要保存的數(shù)據(jù)存放在Bundle對(duì)象中,然后通過Intent提供的putExtras()方法將要攜帶的數(shù)據(jù)保存在Intent中。

具體步驟如下:

在WelcomeActivity.java的“開始”按鈕單擊事件監(jiān)聽器中添加如下代碼:

Intent intent = new Intent(WelcomeActivity.this,DanChengActivity.class);

Bundle bundle=new Bundle();//--創(chuàng)建并實(shí)例化一個(gè)Bundle對(duì)象

bundle.putCharSequence("hccs", hccs); //--保存后尺常數(shù)

bundle.putCharSequence("qccs", qccs); //--保存前尺常數(shù)

bundle.putCharSequence("szdj", szdj); //--保存水準(zhǔn)等級(jí)

bundle.putCharSequence("tq", tq); //--保存天氣

bundle.putCharSequence("cx", cx); //--保存成像

intent.putExtras(bundle); //--將Bundle對(duì)象添加到Intent對(duì)象中

startActivity(intent); //--啟動(dòng)新的Activity

在DanChengAcitivity.java的onCreate()方法中添加如下代碼:

Intent intent =getIntent();//--獲取Intent對(duì)象

Bundle bundle=intent.getExtras();//--獲取傳遞的數(shù)據(jù)包

String sthccs=bundle.getString("hccs");//--獲取后尺常數(shù)

String stqccs=bundle.getString("qccs");//--獲取前尺常數(shù)

hccs = Integer.parseInt(sthccs); //--將后尺常數(shù)轉(zhuǎn)換為int類型

qccs = Integer.parseInt(stqccs); //--將前尺常數(shù)轉(zhuǎn)換為int類型

String szdj=bundle.getString("szdj");//--獲取水準(zhǔn)等級(jí)

final String tq=bundle.getString("tq");//--獲取天氣

final String cx=bundle.getString("cx");//--獲取成像

這樣就實(shí)現(xiàn)了不同界面中數(shù)據(jù)的傳遞,如圖2所示的軟件操作界面。

圖2 水準(zhǔn)記錄界面

4結(jié)束語(yǔ)

經(jīng)測(cè)試和使用,本軟件可方便快捷地進(jìn)行水準(zhǔn)數(shù)據(jù)記錄,并可與本單位現(xiàn)有的平差軟件進(jìn)行無縫銜接,實(shí)現(xiàn)野外觀測(cè)水準(zhǔn)數(shù)據(jù)的資料處理和打印,解決了因舊設(shè)備老化和淘汰帶來的軟件更新迭帶問題。

〔參考文獻(xiàn)〕

[1]吳亞峰,索依娜.Android核心技術(shù)與實(shí)例講解[M].北京:電子工業(yè)出版社,2010.

[2]清宏計(jì)算機(jī)工作室.JAVA編程技巧[M].北京:機(jī)械工業(yè)出版社,2004.

[3]姚昱旻,劉衛(wèi)國(guó).Android的架構(gòu)與應(yīng)用開發(fā)研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008,17(11):110-112.

[4]汪永松.Android平臺(tái)開發(fā)之旅[M].北京:機(jī)械工業(yè)出版社,2011.

[5]羅海濱,趙顯富.電子手簿在水準(zhǔn)測(cè)量實(shí)踐教學(xué)中的應(yīng)用研究[J].測(cè)繪科學(xué),2012(6):187-188.

[6]王沖.J2ME開發(fā)平臺(tái)上XML解析器的選擇[J].計(jì)算機(jī)工程與應(yīng)用,2003(31):133-135.

[7]GB/T 12898-2009,國(guó)家三、四等水準(zhǔn)測(cè)量規(guī)范[S].

[8]陳煒,張曉蕾,侯燕萍,等.Java軟件開發(fā)技術(shù)[M].北京:人民郵電出版社,2005.

[9]熊剛.基于Android的智能手機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2010.

[10]尤寶平,聶群.DiNi11/12電子水準(zhǔn)儀及其使用[J].海洋測(cè)繪,2004(4):59-61.

收稿日期:2015-12-25;修改日期:2016-01-19

作者簡(jiǎn)介:趙健(1985-),男,安徽淮南人,安徽省水利水電勘測(cè)設(shè)計(jì)院勘測(cè)分院工程師.

中圖分類號(hào):TP311.5

文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1673-5781(2016)01-0033-03

猜你喜歡
Android系統(tǒng)界面設(shè)計(jì)
中醫(yī)養(yǎng)生APP界面設(shè)計(jì)
“共享員工”平臺(tái)界面設(shè)計(jì)
中國(guó)傳統(tǒng)元素在界面設(shè)計(jì)中的應(yīng)用
面向智能手機(jī)的UI界面設(shè)計(jì)
手機(jī)UI界面設(shè)計(jì)中視覺藝術(shù)元素的構(gòu)成
Android系統(tǒng)上的移動(dòng)互聯(lián)網(wǎng)集成平臺(tái)開發(fā)機(jī)制
Android系統(tǒng)核心管理工具設(shè)計(jì)與實(shí)現(xiàn)
Android下的機(jī)械式電表數(shù)字識(shí)別技術(shù)研究
基于GPS和iBeacon的智能校園信息發(fā)布平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
基于增強(qiáng)現(xiàn)實(shí)技術(shù)的導(dǎo)航系統(tǒng)研究