【《基于安卓智能氣象系統(tǒng)的設(shè)計》9300字(論文)】_第1頁
【《基于安卓智能氣象系統(tǒng)的設(shè)計》9300字(論文)】_第2頁
【《基于安卓智能氣象系統(tǒng)的設(shè)計》9300字(論文)】_第3頁
【《基于安卓智能氣象系統(tǒng)的設(shè)計》9300字(論文)】_第4頁
【《基于安卓智能氣象系統(tǒng)的設(shè)計》9300字(論文)】_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

V基于安卓智能氣象系統(tǒng)的設(shè)計摘要平日里天氣的陰晴雨雪都與我們的家庭生活與平日工作息息相關(guān),現(xiàn)在我們的工作日常生活信息覆蓋率的逐步不斷擴(kuò)大,及時并能收集到準(zhǔn)確的最新天氣預(yù)報資料就已經(jīng)顯得愈益重要。天氣軟件是一種簡單易用且功能強(qiáng)大的很實(shí)用的軟件,能夠向您實(shí)時提供與使用天氣信息管理軟件相對應(yīng)的天氣情況以及與生活相關(guān)的天氣指數(shù),而為了對未來我國境內(nèi)的天氣狀況和變化程度有一定的掌握與了解,我們要設(shè)計一個可以對未來天氣變化進(jìn)行預(yù)警的軟件,而且要根據(jù)現(xiàn)實(shí)情況做最壞的打算并且配備好相應(yīng)的防災(zāi)救災(zāi)工作準(zhǔn)備。現(xiàn)在互聯(lián)網(wǎng)信息技術(shù)飛速發(fā)展并且趨向成熟,已經(jīng)研發(fā)出了各種各樣的播報天氣情況的手機(jī)APP軟件,而這些軟件不僅僅是幫助人們及時的了解到最新的天氣情況,還能夠使現(xiàn)在青年人學(xué)習(xí)與生活中的體驗(yàn)得到改善。androidrr是當(dāng)前幾大最流行的智能手機(jī)系統(tǒng)其中一個,必定也參與了天氣軟件的研發(fā)。本文就介紹了androidrr系統(tǒng)研發(fā)的天氣預(yù)報手機(jī)APP。關(guān)鍵詞:Android天氣預(yù)報WebServiceSQLite1引言1.1課題研究的意義及應(yīng)用背景天氣預(yù)報的定義是指在未來的某一時間內(nèi),可以對于這一時間內(nèi)的地區(qū)的天氣狀況進(jìn)行猜測與分析報告。它能對未來的某一地區(qū)的氣象天氣情況做出的科學(xué)的氣象預(yù)測和分析。天氣預(yù)報可為分短期預(yù)報及長期預(yù)報。準(zhǔn)確并及時的天氣預(yù)報對于人民生命財產(chǎn)安全的保護(hù)及國家的經(jīng)濟(jì)建設(shè)具有非常大的經(jīng)濟(jì)效益和社會效益。天氣的變化涉及到了人們?nèi)粘9ぷ骷吧畹姆椒矫?。人們能夠能夠利用各種軟件來獲得地區(qū)中最近的天氣情況和天氣有可能變化的情況,并且需要作出應(yīng)對天氣的各種措施與防御的方法?,F(xiàn)如今我國的經(jīng)濟(jì)不斷快速發(fā)展,科學(xué)不斷進(jìn)步,人類的活動范圍不斷增加,同時面對大自然的挑戰(zhàn)也不斷變得嚴(yán)峻,因此現(xiàn)在的天氣預(yù)報已經(jīng)變成了不可缺少的部分。天氣軟件是一種方便簡單易用且使用率高的工具。它能夠?yàn)槟瑫r找到與最近的天氣情況方方面面的情報,同時關(guān)注地區(qū)最近的天氣優(yōu)良指數(shù)。而隨著互聯(lián)網(wǎng)不斷更新,智能手機(jī)和5G網(wǎng)絡(luò)的不斷普及,現(xiàn)在已經(jīng)有各式各樣的天氣預(yù)測的軟件,這些軟件都可以之間安裝在手機(jī)上,這樣有利于地方便了現(xiàn)代社會中人們的學(xué)習(xí)工作和日常生活,能夠幫助人們隨時隨地的了解本地區(qū)的天氣情況,而且安卓手機(jī)作為現(xiàn)在市場中最后歡迎的手機(jī),在天氣軟件的開發(fā)中占有重要的地位。Android平臺天氣軟件的開發(fā)可以讓廣大公眾能夠減少到最小,能夠最快速的獲取想要的天氣狀況,這樣就可以為了預(yù)防而做出最有效的方案,同時也可以遇到天氣預(yù)報或者自然災(zāi)害的損失從而更好的服務(wù)大眾。2軟件總體設(shè)計2.1Android平臺應(yīng)用軟件簡介2.1.1開發(fā)環(huán)境搭建第一,下載并啟動重新安裝一個jdk,其中含有java類數(shù)據(jù)庫及所需的運(yùn)行環(huán)境。第二步,直接到androiddevelopers的官方網(wǎng)站上進(jìn)行android軟件(含androidsdk及基于eclipse開發(fā)的adt)的開發(fā)包下載。第三部就是需要配置所需要的環(huán)境,將系統(tǒng)中的Path路徑安裝在SDK的文件夾中,同時用戶可以指定安裝SDK的路徑。完成上述步驟,就能夠運(yùn)行eclipse從而進(jìn)行程序的開發(fā)與設(shè)計。2.1.2Android系統(tǒng)構(gòu)架安卓系統(tǒng)中有四部分框架組成,從高到低,分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。(1)應(yīng)用層應(yīng)用是運(yùn)行在虛擬機(jī)上用Java語言編寫的程序,Googleoogle最初安裝開始就在已經(jīng)android系統(tǒng)中完全可以作為系統(tǒng)中的主要應(yīng)用軟件,如日歷、地圖、聯(lián)系人等軟件(2)應(yīng)用框架層應(yīng)用框架層是開發(fā)人員所利用的工具,主要用來編寫程序開發(fā),包含以下組件:視圖,內(nèi)容提供者,資源管理器,通知管理器,活動管理器,窗口管理器,包管理器。這樣開發(fā)人員直接使用組件,簡化程序開發(fā)框架設(shè)計。(3)系統(tǒng)運(yùn)行庫層安卓系統(tǒng)包括相關(guān)的腳本庫,全都是基于c與c++的,它們可以在同一個系統(tǒng)中的不同部分相互使用,而且這些安卓程序都是為程序開發(fā)人員準(zhǔn)備。(4)Linux內(nèi)核層安卓中的Linuxkernel控制器主要分為以下部分安全;存儲器管理;網(wǎng)絡(luò)堆棧等相關(guān)部分。Android軟件開發(fā)之四大組件(1)Activityandroid中,所有應(yīng)用程序的根本是activity,它也是我們開發(fā)人員碰到最頻繁的基本功能模塊,每個程序的流程都運(yùn)行在一個activity的中間。若將一個手機(jī)看成視同一個網(wǎng)頁瀏覽器,則activity就是手機(jī)網(wǎng)頁。(2)Serviceservice是android系統(tǒng)中的一種基本組成成分,它與activity有著相同的級別,只是它只能通過在后臺操作,不能自己安裝和運(yùn)行,并且它與其他基本組件之間可以進(jìn)行交互。(3)BroadCastReceiver在安卓系統(tǒng)中,broadcast可以在不同的應(yīng)用程序中運(yùn)輸信息,而且還被廣泛的使用。同時broadcastreceiver是將上面?zhèn)鬏數(shù)男畔⑦M(jìn)行刪減和接收,因此可以使用一個broadcastreceiver來完成外部事件的反饋(4)ContentProviderContentproviderid是由安卓公司來作為訪問數(shù)據(jù)的備份方案,在安卓系統(tǒng)中,幾乎所有的數(shù)據(jù)信息安全性和隱私保護(hù)是很非常嚴(yán)密的。andorid給所有的應(yīng)用程序準(zhǔn)備了一條通往羅馬的道路,那就是contentprovider。2.2軟件功能描述首次手動打開下載該軟件之后就應(yīng)該會自動到達(dá)主模板界面。在主系統(tǒng)界面頂部分別設(shè)置了三個分界面卡,分別寫的是最新天氣預(yù)報資料、生活消費(fèi)指數(shù)和每個城市的進(jìn)本信息,這樣可以通過左右互相移動,來對其中的內(nèi)容進(jìn)行相互切換,而且在這所有的軟件幾乎第一個定位的便是北京。點(diǎn)擊這個按鈕或者下列幾個按鈕之后即時就可以直接重新呼出一個該城市菜單,其中的幾個選項(xiàng)主要有:網(wǎng)頁刷新,城市類型選擇,設(shè)置及城市退出。城市選項(xiàng)可以直接在編輯框中輸入,之后再點(diǎn)擊按鈕就可以進(jìn)行查詢,同時在點(diǎn)擊身份查詢的時候,就會再次得到省份選擇的對話框,選擇好的城市進(jìn)行點(diǎn)擊后就可以進(jìn)入主操作界面并查詢到自己想要選擇的城市。城市信息管理是作為一個數(shù)據(jù)庫,展現(xiàn)了已經(jīng)查找全部的城市,每一個數(shù)據(jù)庫中的一部分儲存著城市的名稱、天氣情報和最后一次更新的時間。如果按住一個項(xiàng)目不松手,就會將此項(xiàng)目送到刪除,點(diǎn)擊刪除就可以刪除你選擇的城市。設(shè)置內(nèi)容包括壁紙?jiān)O(shè)置,開閉根據(jù)不同的天氣更新壁紙的功能,透明程度的調(diào)節(jié)及關(guān)于軟件。同時軟件的壁紙也可以使用用戶自帶的壁紙,或者直接從軟件的圖庫中選擇一張圖片,透明度調(diào)整器可以通過調(diào)整主用戶界面的透明度;在關(guān)于這個軟件里就是對于這些軟件以及設(shè)計人員進(jìn)行了相應(yīng)的介紹。2.3軟件總體設(shè)計方案本文就是對于系統(tǒng)的編程軟件的具體內(nèi)部結(jié)構(gòu)以及內(nèi)部結(jié)構(gòu)圖都在下文。城市的選擇可以直接采用輸入或者使用webservice來得到相應(yīng)的城市信息,然后在這些城市信息中進(jìn)行選擇,最后執(zhí)行完成后返回主用戶界面;主要用戶界面向一個webservice查詢用戶需要發(fā)送一個soap查詢請求,參數(shù)可以表示為查詢所用戶需要進(jìn)行選擇相應(yīng)的城市名;webservice就可以自動查詢對象,查詢soap,而且針對不同的查詢對象,可以最少包含23個元素,在經(jīng)過字符串的模塊,第一方面就可以自動表現(xiàn)為出來的查詢內(nèi)容在其他的主用戶界面上自動展開,另一方面可以進(jìn)行自動插入,其次是自己更新,也可以連接數(shù)據(jù)庫,實(shí)現(xiàn)自動更新,而且在每次用戶查找某一個城市的時候,軟件都會自動查找數(shù)據(jù)庫,查詢里賣弄相關(guān)的信息。如果數(shù)據(jù)庫中含有一個城市的具體信息時,返回cursor,這些經(jīng)過字符串管理解析模塊后會自主的表現(xiàn)解析時然后會自動實(shí)現(xiàn)顯示解析出該查詢城市的整個主用戶界面;查詢一個城市的信息管理解析模塊就是通過查詢數(shù)據(jù)庫當(dāng)中的一部分?jǐn)?shù)據(jù),這樣就可以得到有關(guān)城市的相關(guān)信息,并且可以自主的解析出來,如果需要可以隨時隨地刪除查詢記錄,如果想要返回主頁面,就可以選擇相應(yīng)的城市名,使用webservice就可以查詢城市的相關(guān)信息,查詢到soap,而且對于不同的對象而言,它最少含有23個元素,經(jīng)歷了字符串的改變后,其中的一部分可以顯示為:程序原理圖2.4項(xiàng)目結(jié)構(gòu)內(nèi)容介紹 項(xiàng)目的整體目錄結(jié)構(gòu)下圖項(xiàng)目目錄結(jié)構(gòu)Src文件夾中的后綴必須是使用Java,因?yàn)檫@些文件都是使用java進(jìn)行編寫的,而這些都是為了實(shí)現(xiàn)相關(guān)軟件的操作,res/drawable中所有存放的信息都是與軟件密切相關(guān)的圖像,包括壁紙和其他軟件的圖標(biāo);res/layout中的所有文件都是xml或xml文件,這些文檔定義了各種應(yīng)用程序的ui。libs文件夾中有的就是所有軟件開發(fā)中使用到的jar包,它們還含有ksoap-android包;valus中的strings.xml文件可以定義出該軟件中被引用的每一個字符串;androidmanifest。文件清單如下:文件清單3WebService調(diào)用模塊webservice是一種企業(yè)自己研發(fā)的模塊,它能夠直接完成相應(yīng)的商務(wù)要求的一種企業(yè)型在線人工服務(wù),各個企業(yè)應(yīng)用程序人員可以通過使用webservice內(nèi)部商務(wù)執(zhí)行程序即可直接得到所有必需的結(jié)果。我們主要是可以使用中國氣象局是大學(xué)生來webservice作為每個技術(shù)和方法獲得信息與查詢soap的信息,而且還可以從查詢的對象中,經(jīng)歷過字符串的處理,進(jìn)而分析出該地區(qū)的天氣情報與生活指數(shù)等。而且在安卓系統(tǒng)中的SDK中并沒有使用數(shù)據(jù)庫,這就需要使用第三方的數(shù)據(jù)庫來調(diào)節(jié)WebService。適合手機(jī)的WebService客戶端的SDK比較普遍和被使用的一個應(yīng)該算法是:nksoap2-android。ksoap2-android這是一個全新的開發(fā)項(xiàng)目,具有開源性和簡單性,而且這些都已經(jīng)能夠完swebservice的數(shù)據(jù)拜訪,而且還可以返回sxml數(shù)據(jù)對象,進(jìn)行進(jìn)一步的優(yōu)化,并重新進(jìn)行封裝后生成一個名為soap的數(shù)據(jù)對象。只要你需要在該應(yīng)用程序中對封裝數(shù)據(jù)的類進(jìn)行簡單的分類配置和封裝調(diào)用,然后再再次調(diào)用其中被數(shù)據(jù)封裝好的調(diào)用方式,就已經(jīng)完全可以直接使用它得到一個被封裝有大量類型數(shù)據(jù)的類和soap等類對象。第一步就是要讓我們用戶在官網(wǎng)上利用jar軟件包,實(shí)現(xiàn)免費(fèi)的下載,之后就可以下載一個全新的安卓項(xiàng)目,這樣同時也可以將以前安裝ksoap2-android軟件包直接導(dǎo)入到文件夾中,在經(jīng)過此項(xiàng)目中,用戶可以自主的命令項(xiàng)目的頭文件,操作空間,同時還可以指定方法來建立一個soap的對象,直接通過soap安裝協(xié)議,在協(xié)議上點(diǎn)擊同意鍵,之后就可以獲取相應(yīng)的數(shù)據(jù)。被web

service使用的函數(shù)與參數(shù)全部被軟件包裝組成一個變動的功能型weatherutils,其中內(nèi)容的方法和參數(shù)就可以被用作一個新的靜態(tài)。這就可以在我們向其他的數(shù)據(jù)庫傳輸數(shù)據(jù)的過程中,調(diào)用此方法中的動態(tài)方式,并且向里面?zhèn)鬏斠粋€具體參數(shù)值,下面就是用來介紹此靜態(tài)函數(shù)。第一個規(guī)定的函數(shù)就是ligetprovincelist(),可以使用該函數(shù),進(jìn)一步得出另一個函數(shù)list<string>,而這些數(shù)據(jù)中,就含有了全部的省份名,因此我們需要親自解釋兩種字符串的常數(shù),這就是命名空間中的url和<br>服務(wù)的url,如下: returnnull; }在上述編程信息中所涉及到的第二個函數(shù)為getCityListByProvince(),其主要作用就是能夠使得用戶在系統(tǒng)中輸入相應(yīng)的省份信息時,可以得到該省份的城市列表,并且獲得List<String>對象。其具體內(nèi)容及注釋信息為:在上文提及的兩函數(shù)中,將獲得的具有城市或者是省份列表的SoapObject對象變?yōu)長ist<String>對象的形式主要是通過其中涉及到的parseProvinceOrCity函數(shù)完成的,通過這一轉(zhuǎn)換使得后續(xù)進(jìn)行城市選擇工作能夠?qū)崿F(xiàn)。上文中使用的第三個函數(shù)是getWeatherbyCityName(),我們通過單詞就可以猜到,其主要是根據(jù)所輸入的城市名來為用戶提供相應(yīng)的生活指數(shù)、天氣以及基本城市信息。其詳細(xì)函數(shù)信息為:

4數(shù)據(jù)存儲4.1用SharedPreferences存儲偏好設(shè)置 實(shí)際上sharedpreferencesh與使用十分普遍的ini類文件相似,主要作用就是對手機(jī)應(yīng)用程序里的部分基礎(chǔ)偏好配置設(shè)定進(jìn)行相應(yīng)的管理和存儲工作。在本軟件中通過PreferenceManager得到的sharedpreferences的工作對象,并將其全部命名為preference。通過調(diào)用與preference對應(yīng)的get方法以及完成傳入鍵以及默認(rèn)值的輸入,既能夠獲得其對應(yīng)鍵所具有的值。然后借助sharedpreferences.editor和其對應(yīng)的put放入方法即能夠?qū)崿F(xiàn)不同鍵值的分類放置。此次設(shè)計的軟件中有關(guān)SharedPreferences所保存的鍵值信息如下。SharedPreferences中存儲內(nèi)容介紹4.2SQLite數(shù)據(jù)庫模塊進(jìn)行數(shù)據(jù)庫的設(shè)置其實(shí)際上就是為了能夠把獲得的天氣信息存儲到數(shù)據(jù)庫里,在用戶需要的時候調(diào)用這些信息向用戶展示,同時對其中信息加以更新。不僅如此,為了能夠同時了解管理多個城市信息,數(shù)據(jù)庫也可以進(jìn)行城市列表的存儲工作。android建立了一個嵌入式數(shù)據(jù)庫-sqlite,由于它是基于非嵌入式開發(fā)的,在很多產(chǎn)品中已經(jīng)得到廣泛的的運(yùn)用了,所需要占用的硬盤資源相當(dāng)?shù)?,處理運(yùn)行速度相對于其他管理系統(tǒng)來說更加迅捷。sqlite引擎其實(shí)際上不是一個單獨(dú)工作的應(yīng)用進(jìn)程,其實(shí)際上是把程序和通信加以聯(lián)系所形成的整體中的一個關(guān)鍵結(jié)構(gòu)。所以目前大部分通訊網(wǎng)絡(luò)協(xié)議其調(diào)用實(shí)際上均是基于各種編程語言文件里的api接口完成的。其有利于降低使用數(shù)據(jù)的量以及延誤運(yùn)行時間,并對于提高系統(tǒng)整體的數(shù)據(jù)簡單化處理效果等都具有良好的作用。系統(tǒng)中的數(shù)據(jù)庫均是被存放于一個宿主的虛擬主機(jī)上,并且都被存放于一個單獨(dú)的數(shù)據(jù)文檔中。4.2.1實(shí)現(xiàn)SQLiteOpenHelper 第一步應(yīng)當(dāng)對SQLiteOpenHelper類中所包含的數(shù)據(jù)庫操作類進(jìn)行封裝,并且在軟件中對其進(jìn)行名稱的確定,將其命名為DatabaseHelper。一般所要用到的技術(shù)方法為onUpgrade方法以及onCreate方法等。sqliteopenhelper所具有的獨(dú)立數(shù)據(jù)庫其所使用的構(gòu)造方法實(shí)際上是基于用戶的實(shí)際需求,向各數(shù)據(jù)庫文件里加入相應(yīng)的context,將數(shù)據(jù)庫命名為,cursorfactory(此時要求一班人都在一個null完成,否則其將會變?yōu)橄到y(tǒng)默認(rèn)的一個數(shù)據(jù)庫),數(shù)據(jù)庫的每個版本號和編程號分別來自于確定的全新數(shù)據(jù)庫之中。在實(shí)現(xiàn)sqliteopenhelper時,第一步應(yīng)當(dāng)進(jìn)行oncreate方法的執(zhí)行,該方法中包含了一個完備的sql語句,它被命名為weather,主要作用為在表中儲存全部的城市查詢結(jié)果。由于通過WebService進(jìn)行查詢能夠獲得的查詢結(jié)果一共包括23和元素,其對應(yīng)的編號信息則是從0到22,此次設(shè)計的軟件中不涉及到0號、2號、3號、9號、16號以及21號元素的使用,因此出于確保能夠和在WebService里所活動的數(shù)據(jù)其對應(yīng)的編號信息相同,并且便于相應(yīng)描述,通過下述方式進(jìn)行weather表的定義:weather表的定義由于此次編程過程中進(jìn)行函數(shù)構(gòu)造時實(shí)際上并未創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫的創(chuàng)建工作是在進(jìn)行g(shù)etWritableDatabase或者getReadableDatabase方法的調(diào)用時才進(jìn)行的。所涉及到的詳細(xì)編程信息以及注釋內(nèi)容為:publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){ }}4.2.2對數(shù)據(jù)庫實(shí)現(xiàn)增刪改查此次設(shè)計的軟件中,在工具類SQLiteUtils里進(jìn)行了數(shù)據(jù)庫信息增添、修改或者刪除等工作所對應(yīng)的方法的封存,實(shí)際上其中包含的全部方法均被視為屬于靜態(tài)方法,這種類型的方法能夠直接在其他類中進(jìn)行調(diào)用。insert函數(shù)主要是負(fù)責(zé)完成數(shù)據(jù)庫插入功能,其中涉及到的參數(shù)values主要是對需要添加的信息相對應(yīng)的鍵值所對應(yīng)的集合進(jìn)行儲存,其中各個鍵值分別對應(yīng)的key所代表的是需要向表中插入的信息對應(yīng)的列名,價值對的value則是其對應(yīng)的列所具有的值,詳細(xì)函數(shù)信息為: 下面這個QUERY函數(shù)實(shí)現(xiàn)對數(shù)據(jù)庫的查詢。這個函數(shù)將查詢weather表中info1為cityName的記錄,并返回一個Cursor對象。Cursor相當(dāng)于一個游標(biāo),指在查詢結(jié)果的第一條記錄之前,可以調(diào)用它的moveToFirst方法指向第一條記錄。可以通過Cursor對象取得查詢結(jié)果每一條記錄中每一列的信息,方法將在其他部分介紹,下面是函數(shù)和注釋:下面這個函數(shù)QUERYALL實(shí)質(zhì)也是一個實(shí)現(xiàn)查詢功能的函數(shù),只不過它查詢的是數(shù)據(jù)庫中所有城市中列名為info1,info5和info6的信息。這個函數(shù)用來進(jìn)行城市管理。 map.put("temperature",cursor.getString(cursor.getColumnIndex("info5"))); list.add(map); } cursor.close(); returnlist; }5主界面UI設(shè)計與功能實(shí)現(xiàn)5.1主界面UI設(shè)計進(jìn)行界面設(shè)計工作時,在Android中是主要是通過xml文件完成的。通過rxxml文件能夠?qū)崿F(xiàn)對用戶界面的整體布局設(shè)計的規(guī)劃,并且其頁面布局能夠加以嵌套。并且在進(jìn)行頁面布局時,可以向其中加入button(按鈕控件),textview(文本控件),edittext(編輯框控件)等不同類型的android定義控件。調(diào)用xml文件時,要自行進(jìn)行布局以及其空間屬性信息的定義,上述信息也能夠通過應(yīng)用程序加以調(diào)整。主界面主要負(fù)責(zé)用戶所進(jìn)行的查詢相對應(yīng)的信息,并且用戶在手機(jī)中打開該軟件時首先顯示的就是這一界面,其相應(yīng)的文件進(jìn)行命名時,格式應(yīng)當(dāng)是activity_main.xml。通常主界面中包含了三個可自定義的選擇卡,其詳細(xì)界面情況如下。主界面選項(xiàng)卡在主界面中包含的三個選項(xiàng)卡所顯示的信息為:天氣信息(其對應(yīng)的XML文件為weather_info.xml)、生活指數(shù)(其對應(yīng)的XML文件為life_index.xml)以及城市信息(其對應(yīng)的XML文件為city_info.xml),因?yàn)槠渲猩婕暗降男畔⒘枯^大,因此下文不對其相應(yīng)的代碼信息加以展示。其實(shí)際顯示效果如下。天氣信息顯示界面生活指數(shù)顯示界面天氣信息顯示界面5.2運(yùn)用ViewPager實(shí)現(xiàn)左右滑動效果ViewPager能夠借助在手機(jī)上進(jìn)行左右平滑實(shí)現(xiàn)不同界面的轉(zhuǎn)換。要想發(fā)揮ViewPager的功能,首先需要具備一個繼承于PagerAdapter中的類,然后將其和ViewPager進(jìn)行綁定,此次是設(shè)計中選擇的是MyPagerAdapter。其能夠?yàn)閂iewPager的工作提供合適的適配器,以此完成其中各個界面的操作工作,若需要對pageradapter的函數(shù)類進(jìn)行重新定義時,應(yīng)當(dāng)先針對其完成不低于4個繼承函數(shù)的編寫,也就是:instantiateitem(viewgroup,int),destroyitem(viewgroup,int,object),getcount()和:disviewfromobject(view,object),不僅如此,對于MyPagerAdapter中涉及到的構(gòu)造函數(shù)也要進(jìn)行重新定義。MyPagerAdapter的結(jié)構(gòu)為:除上述處理外,還要給ViewPager添加自定義的監(jiān)聽器,對其各個界面的轉(zhuǎn)換工作加以監(jiān)聽,確保其能夠正常進(jìn)行。,用于監(jiān)聽界面中的頁面切換,并執(zhí)行相關(guān)的切換動畫,其能夠?yàn)橛脩籼峁㎡nPageChangeListener接口,相應(yīng)的詳細(xì)代碼信息為。 } publicvoidonPageScrollStateChanged(intarg0){ } }}此次設(shè)計的軟件中所使用費(fèi)切換卡頭標(biāo)屬于TextView類型,需要對每一個頭標(biāo)均進(jìn)行監(jiān)聽器的綁定,從而對其點(diǎn)擊事件加以監(jiān)聽,具體的監(jiān)聽器代碼為:5.3查詢并顯示查詢結(jié)果該模塊負(fù)責(zé)的是對用戶所查詢的信息進(jìn)行匯總并在ViewPager中的三個頁面里加以顯示。其在進(jìn)行相應(yīng)的信息查詢前,會對其數(shù)據(jù)庫中已經(jīng)存儲的信息進(jìn)行篩選,若其中有所需信息,則直接使用,并在主界面中顯示,然后在對其網(wǎng)絡(luò)連接的有效性進(jìn)行判斷,如果數(shù)據(jù)庫中不包含所需的信息,就通過webservice進(jìn)行查詢,然后將相應(yīng)信息儲存到數(shù)據(jù)庫中,同時在主頁面中顯示。上述功能主要是通過dispay函數(shù)完成:在系統(tǒng)數(shù)據(jù)庫中對所需信息進(jìn)行查詢并將所得到的信息在主界面中顯示主要是通過上述代碼涉及到的refreshFromDB函數(shù)來完成。其對應(yīng)的代碼為:因?yàn)樵贏ndroid3.0之后的版本對于軟件訪問互聯(lián)網(wǎng)的權(quán)限的要求更加氧,因此此次軟件設(shè)計中在完成Runnable接口的Wthread線程里加入了進(jìn)行WebService訪問的對應(yīng)代碼: handler.sendMessage(msg); } }上述代碼中對于所需信息主要是通過WebService進(jìn)行查詢的,查詢完成后會得到名為detail的SoapObject類型的結(jié)果,將其置于Message隊(duì)形里,借助對handler.sendMessage(msg)的調(diào)用實(shí)現(xiàn)msg信息的傳輸,使其在消息隊(duì)列中顯示。Handler為此次軟件設(shè)計中創(chuàng)建的Handler類型其對應(yīng)的對象,Handler類你能夠借助handleMessage方法來獲取消息隊(duì)列中的信息,其具體代碼為:在上述代碼中使用了refresh函數(shù),而且還涉及到參數(shù)detail的使用,detail也就是通過WebService查詢得到的信息其對應(yīng)的對象,refresh函數(shù)主要就是提取detail中包含的數(shù)據(jù)信息,并將其上傳到數(shù)據(jù)庫中同時在主頁面中顯示,下文為Refresh函數(shù)中的一部分代碼信息: 6城市選擇和城6城市選擇和城市管理功能設(shè)計與實(shí)現(xiàn)6.1城市選擇功能 關(guān)于系統(tǒng)的城市選擇界面具體內(nèi)容見下圖。城市選擇界面按省份查詢對話框通過觀察以上圖片我們能夠發(fā)現(xiàn),直接查詢法是用戶在進(jìn)行城市選擇操作時最常用的方法,就是用戶在系統(tǒng)中直接輸進(jìn)去城市的名稱然后點(diǎn)擊界面上的查詢按鍵,而另外一個辦法就是查詢過程中根據(jù)對應(yīng)的省份來進(jìn)行查詢,省份與城市二者間的選擇框會在用戶點(diǎn)下按省份查詢的按鍵后自動在界面上出現(xiàn),這種方式是此論文著重解釋的地方。AlertDialog是本次軟件中對話框的型號,為了讓軟件中完成獲取對話框的工作,我們必須使用newAlertDialog.builder(this)對名字是alertdialog.builder的對象進(jìn)行創(chuàng)造,之后在使用相對應(yīng)的設(shè)置軟件對此程序中的對話框的類型以及出現(xiàn)方式進(jìn)行設(shè)計。showDialog函數(shù)主要實(shí)現(xiàn)了本軟件對話框功能,而使用showDialog函數(shù)進(jìn)行軟件實(shí)現(xiàn)編寫的代碼見下圖: 數(shù)據(jù)庫得到的城市與省份的名單與天氣信息被主界面得到并且顯示的過程具有相同原理,使用了handler機(jī)制。而在線程citythread與provincethread里進(jìn)行的就是獲取相應(yīng)的城市列表和省份列表的工作。其中編寫handler的程序如下:6.2城市管理功能對城市進(jìn)行管理的界面表現(xiàn)為此列表,具體內(nèi)容見下圖。城市管理界面ListActivity實(shí)際上是ListView和Activity的結(jié)合體,也就是說,一個ListActivity就是內(nèi)嵌一個ListView控件的窗口。在ListActivity類的內(nèi)部通過代碼來創(chuàng)建ListView對象,因此,使用ListActivity并不需要使用布局文件來定義ListView控件。ActivityA創(chuàng)建包含操作描述的Intent,并將其傳遞給startActivity()。Android系統(tǒng)搜索所有應(yīng)用中與Intent匹配的Intent過濾器。找到匹配項(xiàng)之后,該系統(tǒng)通過調(diào)用匹配Activity(ActivityB)的onCreate()方法并將其傳遞給Intent,以此啟動匹配Activity。此實(shí)驗(yàn)中先設(shè)計布局文件listview2.xml,里面只放置一個ListView組件,布局文件listview2.xml的源代碼如下:7軟件設(shè)置模塊 主要的功能必須達(dá)到以下的要求:首先,簡便。如果整個系統(tǒng)可以按照標(biāo)準(zhǔn)的條件予以運(yùn)行,而且整個功能完善,所以在把整個系統(tǒng)設(shè)計的簡便,易懂,整個系統(tǒng)就會更加被用戶所認(rèn)可并且實(shí)用。其次,針對性,該系統(tǒng)主要是在后臺實(shí)行的世界觀里是很重要的一個模塊,其存在彰顯了此系統(tǒng)功能和設(shè)計的獨(dú)特性。適用范圍:此系統(tǒng)具有強(qiáng)大的適用性與可用性,對不同的軟件都可兼容并進(jìn)行正常工作以及進(jìn)行運(yùn)算。設(shè)計界面具體內(nèi)容見下圖。圖7.1主設(shè)置界面 在實(shí)現(xiàn)軟件時通常使用就是為了解決軟件設(shè)置問題而誕生的PreferenceActicity功能,具體編寫程序如下圖:在實(shí)現(xiàn)軟件進(jìn)行編譯的過程中我們定義了四個Preference來布局文件。定義的首個標(biāo)題的目的就是對界面的背景壁紙進(jìn)行變換操作,能夠完成基礎(chǔ)的改變壁紙的工作,設(shè)置界面會在用戶使用后變換到相應(yīng)的壁紙。其次便是preference的其中一個子類checkboxpreference,能夠完成所在地區(qū)實(shí)時天氣的更新改變以及壁紙的開關(guān)功能。第三個preference是我們可以自己定義的,名為alphaajustpreference,可以調(diào)節(jié)軟件的透明度。最后一個preference也是完成了壁紙的轉(zhuǎn)變功能。設(shè)計時對AlphaAjustPreference編碼如下圖所示。alpha=sharedPref.getInt("alpha",120);

結(jié)論本次基于大學(xué)所學(xué)知識的設(shè)計,能夠很好的適用于很多場景之中,并且其簡易的裝置使得操作更加方便,低廉的成本使得學(xué)生也能很好的動手制作,其高靈敏度的特性可以得到很好的保障。通過結(jié)果可見,該置具有一定的可發(fā)展性,也具備著產(chǎn)品化的可能性,雖然這次裝置不具備產(chǎn)品美觀的特點(diǎn),也達(dá)不到產(chǎn)品的精度,后續(xù),我也會繼續(xù)努力,向著更精準(zhǔn),更美觀,更實(shí)用的方向繼續(xù)努力,繼續(xù)深入研究。但是由于時間、基礎(chǔ)及缺乏實(shí)踐等多方面的問題,還有諸多需要解決的問題依然存在,設(shè)計中很多方面考慮不夠周全或者考慮不到,但是我在畢業(yè)設(shè)計的過程中所掌握到的基礎(chǔ)知識使我受益終身。也享受到運(yùn)用知識解決問題的喜悅,我相信本設(shè)計對于我未來的工作有很大幫助,我會努力學(xué)習(xí)更多專業(yè)知識去盡力完善此設(shè)計。通過這一次的開發(fā),我充分明白了在未來的工作中,通過良好的溝通交流,這在項(xiàng)目的開發(fā)過程中是多么的重要,只有通過團(tuán)隊(duì)的討論與交流才能對項(xiàng)目開發(fā)過程遇到的問題,得出最優(yōu)秀的解決方案。在整個設(shè)計的過程中也受到了前輩,朋友,老師的幫助,這都使我前進(jìn)與進(jìn)步。這一次的畢業(yè)設(shè)計,對于我未來的工作學(xué)習(xí),有著十分巨大的意義以及作用,是非常大的幫助。在此論文付梓之際,我要向在完成此次論文過程中一直鼓勵我、支持我、陪伴我的老師和同學(xué)們表示衷心的謝意。在此論文完成過程中,我收獲了很多,也學(xué)會了許多新的技能,鍛煉了自己,提高了自己的能力,使得自己的思維方式和角度都得到了進(jìn)一步的拓寬,同時在論文撰寫過程中,也學(xué)習(xí)了許多新的知識,了解到了語言的嚴(yán)謹(jǐn)性和進(jìn)行合作學(xué)習(xí)所具有的積極影響。希望能夠通過此次研究,豐富該方面的理論知識,為后續(xù)進(jìn)行相關(guān)研究的人提高一定的參考。在這里再次感謝一直陪伴與指導(dǎo)我的老師和同學(xué)們!參考文獻(xiàn)[1]GONGLei,ZHOUCong.DevelopmentandResearchofMobileTerminationApplicationBasedonAndroid[J].ComputerAndModernization,2008,P25-32[2]Enck,W.,Ongta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論