freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的天氣預(yù)報(bào)系統(tǒng)設(shè)計(jì)說(shuō)明(參考版)

2025-06-29 13:20本頁(yè)面
  

【正文】 經(jīng)過(guò)數(shù)個(gè)月的努力,在指導(dǎo)老師楊世恩老師和陳春梅老師的指導(dǎo)幫助下,基于An。也曾經(jīng)為. . . . 參考尋找各種錯(cuò)誤而煩惱過(guò),也曾經(jīng)為解決某一個(gè)問(wèn)題而開(kāi)心過(guò),雖然過(guò)程很艱苦,但是結(jié)果總是好的。由于此作品是作為畢業(yè)設(shè)計(jì)的創(chuàng)作成果,其中軟件的功能等方面并非處于一個(gè)成熟的階段,當(dāng)中的缺點(diǎn)是無(wú)可非議地存在著。本文主要介紹了一款基于 Android 平臺(tái)的天氣預(yù)報(bào)軟件的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,提出了 Android 用戶(hù)界面設(shè)計(jì)、獲取并解析城市列表數(shù)據(jù)的一種方法,給出了在用戶(hù)界面上呈現(xiàn)數(shù)據(jù)的原理與設(shè)計(jì)過(guò)程,最后通過(guò)模擬器進(jìn)行了應(yīng)用程序的調(diào)試。其獨(dú)特的設(shè)計(jì)模式以及基于 java 平臺(tái)的開(kāi)發(fā)語(yǔ)言都使得進(jìn)入 Android 的門(mén)檻變得非常的低。近年來(lái),我國(guó)人民更是利用現(xiàn)代技術(shù)不斷影響天氣變化,將氣象服務(wù)的作用發(fā)揮到最大,給子人們準(zhǔn)確、快速、髙效的氣象服務(wù)。有專(zhuān)家表示,隨著中國(guó)大氣環(huán)境評(píng)價(jià)、工程氣象保障等方面專(zhuān)業(yè)氣象服務(wù)范圍的擴(kuò)大和氣象研究的深入,氣象對(duì)國(guó)民經(jīng)濟(jì)發(fā)展的促進(jìn)作用將不斷增強(qiáng),在中國(guó)氣象領(lǐng)域,1 元的投入,可以帶來(lái) 40 元經(jīng)濟(jì)效益。我們需要做的僅僅是通過(guò)某些平臺(tái)所提供的 API 接口進(jìn)行相應(yīng)操作,而這些平臺(tái)的數(shù)據(jù)其實(shí)也是來(lái)源于此。目前制作天氣預(yù)報(bào)常常是將這三種方法配合起來(lái)使用,將天氣圖、衛(wèi)星和雷達(dá)圖像、動(dòng)力分析和統(tǒng)計(jì)分析、數(shù)值預(yù)報(bào)產(chǎn)品等進(jìn)行綜合分析,最后做出天氣預(yù)報(bào)。由于服務(wù)對(duì)象不同,在預(yù)報(bào)項(xiàng)目、預(yù)報(bào)時(shí)效、預(yù)報(bào)用語(yǔ)等方面都存在著一定的差異。伴隨著科技的不斷進(jìn)步,天氣預(yù)報(bào)得到了快速的發(fā)展。準(zhǔn)確地預(yù)報(bào)天氣一直是大氣科學(xué)研究的一個(gè)重要目標(biāo)。測(cè)試用機(jī)為魅族的 MX5,Android 版本 ,測(cè)試環(huán)境需要打開(kāi)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)連接,安裝軟件時(shí)需要授權(quán)定位權(quán)限。測(cè)試是為了檢測(cè)軟件的質(zhì)量,確保軟件正確無(wú)誤地運(yùn)行,期望達(dá)到預(yù)期效果。它一方面檢查軟件產(chǎn)品質(zhì)量中存在的質(zhì)量問(wèn)題,同時(shí)對(duì)產(chǎn)品質(zhì)量進(jìn)行客觀(guān)的評(píng)價(jià)??紤]到此設(shè)計(jì)不會(huì)大量投入應(yīng)用(如果要大量應(yīng)用需要. . . . 參考購(gòu)買(mǎi)天氣數(shù)據(jù)) ,所以換一個(gè)賬號(hào)注冊(cè)申請(qǐng)數(shù)據(jù)就可正常使用了。經(jīng)過(guò)查詢(xún)發(fā)現(xiàn)聚合數(shù)據(jù)平臺(tái)是以營(yíng)利為目的的 API 提供商,在其基礎(chǔ)上的應(yīng)用開(kāi)發(fā)是需要提供認(rèn)證的,如果需要延長(zhǎng)開(kāi)發(fā)周期,可以聯(lián)系聚合的客服。 無(wú)法獲取數(shù)據(jù)此錯(cuò)誤與第一個(gè)錯(cuò)誤類(lèi)似,都是無(wú)法獲取天氣數(shù)據(jù),不過(guò)第一個(gè)錯(cuò)誤是“系統(tǒng)異?!保ㄥe(cuò)誤代碼 10014) ,現(xiàn)在又出現(xiàn)的錯(cuò)誤是“應(yīng)用未審核超時(shí),請(qǐng)?zhí)峤徽J(rèn)證” (錯(cuò)誤代碼10005) 。. . . . 參考圖 517 解決方案 分段顯示圖片無(wú)法根據(jù)不同時(shí)間段顯示不同圖片。圖 516 數(shù)據(jù)顯示不全經(jīng)過(guò)排查,發(fā)現(xiàn) setHoursView 方法放在了上一個(gè)代碼域內(nèi),故而只有第一個(gè)數(shù)據(jù)進(jìn)行了 UI 界面設(shè)置的調(diào)用。 間隔三小時(shí)天氣區(qū)域數(shù)據(jù)顯示不全只能實(shí)現(xiàn)間隔三小時(shí)天氣區(qū)域數(shù)據(jù)的第一個(gè)數(shù)據(jù)。圖 515 JSON 數(shù)據(jù)要想正常使用引號(hào),必須在其前面加上轉(zhuǎn)義字符“/” ,若所獲數(shù)據(jù)較少可使用此方法,然則數(shù)據(jù)量頗大,必須另謀它法——將 string 數(shù)據(jù)轉(zhuǎn)化成 JSON 數(shù)據(jù)。不過(guò)獲取到的數(shù)據(jù)只是 JSON 格式的字符串?dāng)?shù)據(jù),表面上是 JSON 數(shù)據(jù),其實(shí)質(zhì)仍為字符串。必須由自己編寫(xiě)調(diào)用方法和回調(diào)函數(shù)。最初以為是版本的更新導(dǎo)致調(diào)用方法的改變,反復(fù)查看 API 接口文檔以及查閱相關(guān)資料,無(wú)法找出失敗原因。圖 514 debug 調(diào)試根據(jù)聚合數(shù)據(jù)平臺(tái)提供的 SDK,將其集成到工程的 lib 中,并配置相應(yīng)的權(quán)限和openID,使用其中的方法時(shí),無(wú)法得到數(shù)據(jù)。而在設(shè)計(jì)過(guò)程中,首當(dāng)其沖的攔路虎便是數(shù)據(jù)解析。感覺(jué)在整個(gè)設(shè)計(jì)過(guò)程中,在解決項(xiàng)目問(wèn)題的過(guò)程中自己的提升最大。創(chuàng)建一個(gè) WeatherService 類(lèi)繼承 Service,在 onCreate 方法中初始化 city 為“成都” ,sendHttpRequest 發(fā)送 get 請(qǐng)求數(shù)據(jù)信息,使用 Handler 進(jìn)行數(shù)據(jù)傳遞,然后對(duì)傳遞來(lái)的JSONObject 數(shù)據(jù)進(jìn)行解析并顯示在控件中。Service 和其他組件一樣,都是運(yùn)行在主線(xiàn)程中,因此用它來(lái)做耗時(shí)的請(qǐng)求和操作時(shí),需要開(kāi)一個(gè)線(xiàn)程來(lái)執(zhí)行。使用時(shí)需要用 PullToRefreshScrollView 框住需要刷新內(nèi)容的控件,在 xml 布局文件的配置如圖所示:圖 512 下拉刷新控件的 XML 配置 Service 初始化及實(shí)現(xiàn)通過(guò) Service 實(shí)現(xiàn)后臺(tái)自動(dòng)刷新:Service 是 Android 系統(tǒng)中的四大組件之一,主要用于后臺(tái)運(yùn)行,并且與其他組件交互。一旦監(jiān)聽(tīng)者接收到該事件,就決定了刷新過(guò)程中應(yīng)處理的地方。它使用一個(gè)偵聽(tīng)機(jī)制來(lái)通知擁有該組件的監(jiān)聽(tīng)器有刷新事件發(fā)生,換句話(huà)說(shuō)我們的 Activity 必須實(shí)現(xiàn)通知的接口。SwipeRefreshLayout 在 V4 包下,作為一個(gè)布局,可以在內(nèi)部嵌套如listview,recycleView 等。用戶(hù)使用 app 時(shí),一個(gè)習(xí)慣性的動(dòng)作就是左右上下滑動(dòng),而天氣預(yù)報(bào),一般都需要提供下拉刷新功能。Service 組件通常用于為其他組件提供后臺(tái)服務(wù)或監(jiān)控其他組件的運(yùn)行狀態(tài)。service 通常位于后臺(tái)運(yùn)行,它一般不需要與用戶(hù)交互,因此 Service 組件沒(méi)有圖形用戶(hù)界面。bound(綁定):當(dāng)應(yīng)用程序組件調(diào)用 bindService()方法綁定到服務(wù)時(shí),服務(wù)處于bound 狀態(tài)。service 用于在后臺(tái)完成用戶(hù)指定的操作。我們選擇該接口五個(gè)小類(lèi)下的第一個(gè)接口——城市空氣質(zhì)量。圖 59 三小時(shí)預(yù)報(bào)請(qǐng)求示例 支持城市列表聚合數(shù)據(jù)的天氣預(yù)報(bào) API 接口分為六個(gè)小類(lèi),從該接口我們除了可以獲取天氣信息以外,同樣可以獲取支持城市列表。在網(wǎng)上百度“JSON 在線(xiàn)解析” ,點(diǎn)擊進(jìn)入進(jìn)行數(shù)據(jù)解析。JSON 是一種輕量級(jí)的數(shù)據(jù)交換格式。usespermission android:name=/。然后就可以通過(guò)網(wǎng)絡(luò)數(shù)據(jù)訪(fǎng)問(wèn)工具類(lèi)訪(fǎng)問(wèn)接口 API 了。void onError(Exception e)。編寫(xiě)網(wǎng)絡(luò)數(shù)據(jù)訪(fǎng)問(wèn)工具類(lèi):首先需要在 util 包下定義一個(gè)接口,比如將它命名成 HttpCallbackListener,代碼如下:package 。 根據(jù)城市名查詢(xún)天氣聚合數(shù)據(jù)提供一個(gè) API 查詢(xún)接口,我們可以復(fù)制其中的網(wǎng)址,改變相應(yīng)的參數(shù)即可在瀏覽器上獲得數(shù)據(jù)。具體實(shí)現(xiàn)為:從城市天氣三小時(shí)預(yù)報(bào)API 接口獲取支持城市數(shù)據(jù)(當(dāng)然,也可以手動(dòng)導(dǎo)入城市數(shù)據(jù)庫(kù),不過(guò)考慮到與此 API 接口的兼容性,暫不導(dǎo)入城市數(shù)據(jù)庫(kù)) ,將獲取到的城市列表裝入 ListView 控件即可。 城市選擇界面城市選擇界面主要是為了用戶(hù)手動(dòng)選擇城市而設(shè)置的。第一個(gè)控件所占權(quán)重 parent_width+share=parent_width+(layout_weight*delta/5)=parent_width+(layout_weight*(3*parent_width)/5)=2/5*parent_width (52)第二個(gè)控件所占權(quán)重parent_width+share=parent_width+(layout_weight*delta/5)=parent_width+(layout_weight*(3*parent_width)/5)=1/5*parent_width (53)后面兩個(gè)控件與第二個(gè)控件權(quán)重相同。圖 55 主界面 UI 的部分代碼外部布局的嵌套完成后,需要對(duì)某些顯示控件進(jìn)行更為詳細(xì)的針對(duì)性布置,有時(shí)甚至需要計(jì)算控件所占據(jù)父布局的比例。主界面的核心代碼如下:圖 54 主界面核心代碼setContentView 方法綁定 XML 主界面 UI,init 初試化控件,initService 初始化服務(wù),在服務(wù)中進(jìn)行網(wǎng)絡(luò)連接獲取氣象信息展示在界面中。根據(jù)天氣預(yù)報(bào)的功能分析,主界面中應(yīng)該凸顯實(shí)時(shí)溫度和天氣描述,其次地點(diǎn)和發(fā)布時(shí)間也應(yīng)該在顯眼位置,為了方便用戶(hù)查閱氣象信息,主界面中應(yīng)該能夠查看當(dāng)天的不同時(shí)間點(diǎn)的氣溫以及未來(lái)幾天的天氣預(yù)報(bào),另外,隨著大眾生活質(zhì)量的提高,老百姓對(duì)于空氣質(zhì)量的關(guān)注也是越來(lái)越多,PM 指數(shù)也應(yīng)該在主界面顯示。一個(gè)好的系統(tǒng)主界面,必定是簡(jiǎn)潔+實(shí)用的。LinearLayout. . . . 參考布局設(shè)置底部的四個(gè)小圓點(diǎn),Button 按鈕設(shè)置通過(guò) android:visibility=gone代碼進(jìn)行隱藏,最后在 Java 代碼里實(shí)現(xiàn)按鈕顯示。設(shè)置引導(dǎo)圖片,初始化底部圓點(diǎn),記錄選中位置(從而將該點(diǎn)設(shè)置為紅色以示區(qū)別) ,在引導(dǎo)頁(yè)的最后一頁(yè)設(shè)置“立即體驗(yàn)”按鈕進(jìn)行主界面跳轉(zhuǎn)。根據(jù)設(shè)計(jì),實(shí)現(xiàn)加載界面 WeleActivity:定義一個(gè) SharedPreferences 類(lèi)型的preferences 變量,用于判斷用戶(hù)是否首次使用本軟件。 所以說(shuō),Android 將模型、視圖、控制分開(kāi),界面布局文件單獨(dú)列出。 Controller 控制 View 顯示什么數(shù)據(jù)。Model 是管理數(shù)據(jù)的,當(dāng) Model 中的數(shù)據(jù)發(fā)生變化時(shí),與之對(duì)應(yīng)的視圖應(yīng)更新。 MVC 示意圖如下。從字面意思來(lái)理解, Modal , View , Controller ,其用意在于將數(shù)據(jù)與視圖分離開(kāi)來(lái)。表 51 功能分類(lèi) 查詢(xún)天氣數(shù)據(jù)核心代碼 適配器源代碼包 天氣數(shù)據(jù)實(shí)例、PM 數(shù)據(jù)實(shí)例等 加載界面 數(shù)據(jù)刷新下拉刷新控件支持包 網(wǎng)絡(luò)傳輸 UI 實(shí)現(xiàn). . . . 參考在 Android 中,UI 界面都是布局在工程/res/layout 下面的 XML 文件中,為什么要把界面放在其他文件呢?為什么不像 Java 圖形化界面一樣都在 java 代碼里實(shí)現(xiàn)呢?這就要說(shuō)到 MVC 開(kāi)發(fā)模式了。 濕度 6 6 % 風(fēng)向風(fēng)力 北風(fēng) 1 級(jí) 紫外線(xiàn)強(qiáng)度 中等 穿衣指數(shù) 較冷圖 45 主界面 城市選擇界面城市選擇是天氣預(yù)報(bào)的基礎(chǔ),只有確定了城市,天氣信息才會(huì)具備實(shí)用性。 1 4 176。 1 4 176。 1 4 176。 1 4 176。 1 2 176。 1 8 176。而且這樣做的一個(gè)負(fù)作用是容易讓一款 App 變得臃腫,有人調(diào)侃墨跡越來(lái)越磨嘰了。比如墨跡天氣,從最初的 版本迭代到現(xiàn)在的 版本,墨跡天氣增加的時(shí)景(圖片社交) 、應(yīng)用推薦、穿衣助手、洗車(chē)服務(wù),甚至新聞資訊、娛樂(lè)八卦等,都不難看出它想增加用戶(hù)停留在 App 上的時(shí)間,另外在這些內(nèi)容中安插更多廣告位。本設(shè)計(jì)的引導(dǎo)界面有 4 個(gè),前三個(gè)為主要功能介紹,最后一個(gè)為版權(quán)信息。App 引導(dǎo)過(guò)程的頁(yè)面數(shù)一般為 3 到 6 個(gè),特殊的如刷機(jī)后的 SetupWizard 設(shè)置頁(yè)面將近 10 個(gè)。本設(shè)計(jì)嚴(yán)格遵循“簡(jiǎn)潔”的思想,去除不必要的界面布局,根據(jù)用戶(hù)的喜好,選擇以市場(chǎng)占有率較高的 OPPO R9 手機(jī)自帶天氣預(yù)報(bào) app 為模板,進(jìn)行主界面的設(shè)計(jì)。手機(jī)用戶(hù)界面的好壞決定著整款產(chǎn)品的好壞。系統(tǒng)流程圖如圖所示:. . . . 參考開(kāi)始顯示天氣預(yù)報(bào)主界面點(diǎn)擊城市下拉列表選擇想要查詢(xún)城市跳轉(zhuǎn)到該城市的天氣預(yù)報(bào)界面加載界面判斷是否首次使用否是顯示引導(dǎo)頁(yè)圖 43 系統(tǒng)流程圖 UI 界面分析手機(jī)用戶(hù)界面是用戶(hù)與手機(jī)系統(tǒng)、應(yīng)用交互的窗口,手機(jī)界面的設(shè)計(jì)必須基于手機(jī)設(shè)備的物理特性和系統(tǒng)應(yīng)用的特性進(jìn)行合理的設(shè)計(jì)。 流程分析啟動(dòng)程序后顯示所選城市的天氣信息,通過(guò)圖片和文字顯示天氣狀況,主要有溫度、濕度、風(fēng)向和 PM 指數(shù)等?,F(xiàn)代生活中空氣質(zhì)量的一個(gè)重要指標(biāo)就是 PM 指數(shù),PM 指數(shù)越高,空氣質(zhì)量越差。當(dāng)單擊選中城市時(shí)跳轉(zhuǎn)至天氣顯示界面,來(lái)顯示該城市的實(shí)時(shí)天氣及三天內(nèi)的天氣狀況。在界面中主要顯示的應(yīng)用程序的基本信息,內(nèi)容有學(xué)校名、英文簡(jiǎn)稱(chēng)和版權(quán)信息 [19],具體設(shè)計(jì)如圖所示:西南科技大學(xué)169。加載界面是程序開(kāi)始運(yùn)行時(shí)加載的界面。每次刷新都是對(duì)當(dāng)前天氣和未來(lái)天氣數(shù)據(jù)的重新獲取,設(shè)置自動(dòng)刷新的目的是保證天氣預(yù)報(bào)系統(tǒng)的準(zhǔn)確性。開(kāi)發(fā)環(huán)境用 Eclipse 和 Android,結(jié)合 Android 四大組件以及聚合數(shù)據(jù)進(jìn)行實(shí)現(xiàn)。當(dāng)然,現(xiàn)在的 Android 手機(jī)如此普遍,其實(shí)直接使用 Android 真機(jī)進(jìn)行連接調(diào)試更為方便,Android 模擬器主要是用于前些年的 Android 應(yīng)用調(diào)試。為了便于模擬和測(cè)試應(yīng)用程序,Android 模擬器允許你的應(yīng)用程序通過(guò) Android平臺(tái)服務(wù)調(diào)用其他程序、訪(fǎng)問(wèn)網(wǎng)絡(luò)、播放音頻和視頻、保存和傳輸數(shù)據(jù)、通知用戶(hù)、渲染圖像過(guò)渡和場(chǎng)景。Android 模擬器提供了大量的導(dǎo)航和控制鍵,你可以通過(guò)鼠標(biāo)或鍵盤(pán)點(diǎn)擊這些按鍵來(lái)為你的應(yīng)用程序產(chǎn)生事件。 Android 模擬器可以讓你不需使用物理設(shè)備即可預(yù)覽、開(kāi)發(fā)和測(cè)試 Android 應(yīng)用程序。Android SDK 自帶一個(gè)移動(dòng)模擬器。這種外掛設(shè)計(jì)讓 Eclipse 具備強(qiáng)大擴(kuò)充性,但更重要的是,此平臺(tái)提供一個(gè)定義明確的機(jī)制,讓各種外掛程序共通合作(透過(guò)延伸
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1