版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目七無(wú)憂險(xiǎn)學(xué)習(xí)目標(biāo)通過(guò)U酒保項(xiàng)目無(wú)憂險(xiǎn)模塊的實(shí)現(xiàn),學(xué)習(xí)上拉刷新下拉加載保險(xiǎn)信息列表,了解不同UI控件之間的區(qū)別,掌握無(wú)憂險(xiǎn)界面更新的方法,在任務(wù)實(shí)現(xiàn)過(guò)程中:掌握上拉加載下拉刷新的使用方法了解UI更新概念掌握UI更新方法
任務(wù)路徑情景導(dǎo)入U(xiǎn)酒保研發(fā)團(tuán)隊(duì)為保證用戶的人身安全和利益,設(shè)置了保險(xiǎn)推廣模塊。該模塊設(shè)有多家保險(xiǎn)公司可供用戶選擇,用戶可根據(jù)自身的情況為人與車(chē)購(gòu)買(mǎi)有效合理的保險(xiǎn)。合理購(gòu)買(mǎi)保險(xiǎn)最大程度的減少用戶在發(fā)生意外時(shí)的經(jīng)濟(jì)損失,從根本上解決用戶的實(shí)際問(wèn)題。本模塊通過(guò)保險(xiǎn)推廣模塊的實(shí)現(xiàn),講解了如何實(shí)時(shí)更新保險(xiǎn)信息并將其顯示到界面。刷新加載PullToRefresh是一個(gè)強(qiáng)大的拉動(dòng)刷新庫(kù),用來(lái)實(shí)現(xiàn)多種控件的刷新操作。如ListView、ViewPager(多頁(yè)顯示控件)、WebView(網(wǎng)絡(luò)視圖)、ExpandableListView(實(shí)現(xiàn)下拉list)、GridView(多控件布局)、(Horizontal)ScrollView(循環(huán)滾動(dòng)控件)、Fragment等。在開(kāi)發(fā)過(guò)程中,PullToRefresh庫(kù)的實(shí)現(xiàn)機(jī)制如圖7.3所示。PullToRefresh簡(jiǎn)介刷新加載下拉刷新主要由PullToRefresh庫(kù)實(shí)現(xiàn)的,下拉刷新的父View是LinearLayout,在LinearLayout中添加了HeaderView(頭部視圖)、FooterView(底部視圖)和ListView。如圖7.4所示。PullToRefresh簡(jiǎn)介刷新加載圖7.4所示的第一個(gè)LoadingLayout主要顯示下拉刷新時(shí)的文字“釋放開(kāi)始刷新”;第二個(gè)LoadingLayout顯示松手后的文字“正在刷新”。HeaderView:下拉刷新時(shí)露出的上面部分,下拉到一定位置,松手會(huì)開(kāi)始請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù),然后刷新ListView的列表。FooterView:是ListView手勢(shì)一直上滑到顯示出最后一條數(shù)據(jù),然后繼續(xù)按住滑動(dòng)到一定位置,再松手,會(huì)加載下一頁(yè)的數(shù)據(jù)。PullToRefresh簡(jiǎn)介刷新加載當(dāng)前界面信息不是最新信息時(shí),就需要重新加載此界面,這就需要使用下拉刷新來(lái)實(shí)現(xiàn)界面更新,效果如圖7.5所示。下拉刷新主要的流程是:下拉,顯示提示頭部界面(HeaderView),這個(gè)過(guò)程提示用戶“下拉刷新”。下拉到一定程度,超出了刷新最基本的下拉界限,系統(tǒng)認(rèn)為達(dá)到了刷新的條件,提示用戶“可以松手刷新了”,效果上允許用戶繼續(xù)下拉。用戶下拉后提示頭部界面,所以先反彈僅顯示提示頭部界面,然后提示用戶“正在加載”。刷新完成后,隱藏提示頭部界面。實(shí)現(xiàn)下拉刷新方法刷新加載設(shè)置控件所需布局,具體代碼如CORE0701所示。為L(zhǎng)istView綁定適配器,具體代碼如CORE0702所示。編寫(xiě)控件布局,具體代碼如CORE0703所示。設(shè)置界面刷新模式,具體代碼如CORE0704所示。綁定刷新監(jiān)聽(tīng)事件,具體代碼如CORE0705所示。實(shí)現(xiàn)下拉刷新方法刷新加載當(dāng)用戶從網(wǎng)絡(luò)上讀取空間內(nèi)容的時(shí)候,如果立刻加載用戶未讀的全部?jī)?nèi)容,將耗費(fèi)較長(zhǎng)的時(shí)間,使得用戶體驗(yàn)較差,同時(shí)整屏的內(nèi)容也不足以顯示如此多的內(nèi)容。所以需要用到另一個(gè)功能,那就是ListView的分頁(yè),也就是上拉加載,用戶可根據(jù)需求加載數(shù)據(jù)。上拉加載的方法和下拉刷新的方法基本相同,不同點(diǎn)主要體現(xiàn)在設(shè)置刷新模式和綁定監(jiān)聽(tīng)事件。實(shí)現(xiàn)效果如圖7.6所示。設(shè)置刷新模式,具體代碼如CORE0706所示。綁定監(jiān)聽(tīng)事件,具體代碼如CORE0707所示。實(shí)現(xiàn)上拉加載方法UI更新UI是用戶界面的簡(jiǎn)稱(chēng)。泛指用戶的操作界面。在使用上,對(duì)軟件的人機(jī)交互、操作邏輯、界面美觀的整體設(shè)計(jì)則是同樣重要的另一個(gè)方面。優(yōu)秀的UI不僅能讓軟件變得有個(gè)性有品味,還能讓軟件的操作變得舒適、簡(jiǎn)單、自由,充分體現(xiàn)軟件的定位和特點(diǎn)。UI簡(jiǎn)介UI更新UI設(shè)計(jì)主要指界面的樣式,美觀程度。軟件界面設(shè)計(jì)就像工業(yè)產(chǎn)品中的工業(yè)造型設(shè)計(jì)一樣,是產(chǎn)品的重點(diǎn)。一個(gè)美觀的界面會(huì)給人帶來(lái)舒適的視覺(jué)享受,拉近人與電腦的距離。界面設(shè)計(jì)不是單純的美術(shù)繪畫(huà),它需要定位使用者、使用環(huán)境、使用方式并且為最終用戶而設(shè)計(jì),是純粹的科學(xué)性藝術(shù)設(shè)計(jì)。檢驗(yàn)一個(gè)界面的標(biāo)準(zhǔn)既不是某個(gè)項(xiàng)目開(kāi)發(fā)組領(lǐng)導(dǎo)的意見(jiàn)也不是項(xiàng)目成員投票的結(jié)果,而是最終用戶的感受。所以界面設(shè)計(jì)要和用戶研究緊密結(jié)合,是一個(gè)不斷為最終用戶設(shè)計(jì)滿意視覺(jué)效果的過(guò)程。UI設(shè)計(jì)UI更新對(duì)于日益增加的UI控件需求,市場(chǎng)上也出現(xiàn)了很多可供選擇的UI控件,滿足用戶比較復(fù)雜的需求。這些控件幫助簡(jiǎn)化UI設(shè)計(jì)工作,提高效率。
圖7.7展示了Android中的View元素體系。UI控件可以分為以下幾類(lèi):AndroidUI控件:文本控件、按鈕控件、狀態(tài)開(kāi)關(guān)控件、單選與復(fù)選按鈕、圖片控件、時(shí)鐘控件、日期與時(shí)間選擇控件等。WebUI控件:圖表和圖形、日期和日歷、組合框、對(duì)話框、進(jìn)度條、所見(jiàn)即所得編輯器等。UI控件UI更新iOS基本UI控件:Button控件、開(kāi)關(guān)控件、滑塊控件、工具欄、WebView等。UI控件的三要素:繪制、數(shù)據(jù)、控制。繪制:在界面中可見(jiàn)的圖形,每一個(gè)控件都有自己的樣式,如TableView是一張數(shù)據(jù)表,又如datePicker是一個(gè)時(shí)間選擇器,它們的樣式是不同的。數(shù)據(jù):控件也需要自己的數(shù)據(jù),如label,需要顯示文字的數(shù)據(jù),如ImageView需要顯示圖片的數(shù)據(jù),如果沒(méi)有數(shù)據(jù)這些控件的使用將會(huì)變得沒(méi)有意義??刂疲鹤畹湫偷木褪荁utton,這是用戶與界面交互的關(guān)鍵,還有其他的控件,如Scrollview,可以滑動(dòng)加載數(shù)據(jù)。UI控件Android電話服務(wù)TelephonyManager服務(wù)的實(shí)現(xiàn):TelephonyManager管理電話服務(wù)API的訪問(wèn),獲取TelephonyManager服務(wù)對(duì)象,具體代碼如下所示。TelephonyManagertManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);添加控制和讀取通話的權(quán)限,具體代碼如下所示。<!--授予該應(yīng)用控制通話的權(quán)限--><uses-permissionandroid:name="android.permission.CALL_PHONE"><!--授予該應(yīng)用讀取通話狀態(tài)的權(quán)限--><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission></uses-permission>TelephonyManager用法藍(lán)牙本地藍(lán)牙適配。通過(guò)BluetoothAdapter類(lèi)控制本地藍(lán)牙設(shè)備。該類(lèi)代表應(yīng)用程序的Android設(shè)備,為訪問(wèn)默認(rèn)的BluetoothAdapter,需調(diào)用getDefaultAdapter()。BluetoothAdapter適配類(lèi)包含的方法如表4.2所示。遠(yuǎn)程藍(lán)牙適配。BluetioothDevice對(duì)象代表遠(yuǎn)程藍(lán)牙設(shè)備,通過(guò)該類(lèi)可查詢遠(yuǎn)程設(shè)備物理地址、連接狀態(tài)、名稱(chēng)等信息,該類(lèi)的操作執(zhí)行在遠(yuǎn)程藍(lán)牙設(shè)備硬件上,對(duì)象獲取途徑:調(diào)用BluetoothAdapter的getRemoteDevice()方法獲取該類(lèi)對(duì)象對(duì)應(yīng)的物理地址調(diào)用BluetoothAdapter的getBoundedDevices()方法,可獲取已配對(duì)的藍(lán)牙設(shè)備集合
藍(lán)牙適配AndroidMD5加密MD5的全稱(chēng)Message-DigestAlgorithm5(信息-摘要算法),90年代初由MITLaboratoryforComputerScience和RSADataSecurityInc的RonaldL.Rivest開(kāi)發(fā)出來(lái),經(jīng)MD2、MD3和MD4發(fā)展而來(lái),是單向加密算法。其作用是把一個(gè)任意長(zhǎng)度的字節(jié)串變成一定長(zhǎng)的大整數(shù)。無(wú)論是MD2、MD4還是MD5,都需要獲得一個(gè)隨機(jī)長(zhǎng)度的信息并產(chǎn)生一個(gè)128位的信息摘要。MD5簡(jiǎn)介AndroidMD5加密MD5值如文件的“數(shù)字指紋”。每個(gè)文件的MD5值是不同的,如果對(duì)文件做了改動(dòng),其MD5值也就是對(duì)應(yīng)的“數(shù)字指紋”就會(huì)發(fā)生變化。如下載服務(wù)器針時(shí)對(duì)一個(gè)文件預(yù)先提供一個(gè)MD5值,用戶下載完該文件后,用這個(gè)算法會(huì)重新計(jì)算下載文件的MD5值,通過(guò)比較這兩個(gè)值是否相同,就能判斷下載的文件是否出錯(cuò),或文件是否被篡改了。利用MD5算法來(lái)進(jìn)行文件校驗(yàn)的方案被大量應(yīng)用到軟件下載站、論壇數(shù)據(jù)庫(kù)、系統(tǒng)文件安全等方面。MD5簡(jiǎn)介AndroidMD5加密MD5加密算法分析:MD5以512位分組來(lái)處理輸入的信息,每一分組被劃分為16個(gè)32位子分組,經(jīng)過(guò)了一系列處理后,算法輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位散列值。MD5加密有以下幾個(gè)特點(diǎn)。壓縮性:任意長(zhǎng)度的數(shù)據(jù),算出的MD5值長(zhǎng)度都是固定的。容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5值很容易??剐薷男裕簩?duì)原數(shù)據(jù)進(jìn)行任何改動(dòng),所得到的MD5值都有很大區(qū)別。強(qiáng)抗碰撞:已知原數(shù)據(jù)和其MD5值,再找到一個(gè)具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。MD5加密原理及特點(diǎn)AndroidMD5加密在加密之前要計(jì)算字符串的MD5值,具體代碼如下所示。計(jì)算文件的MD5值,具體代碼如下所示。MD5多次加密。MD5加密本身是不可逆的,但可破譯,有關(guān)MD5解密的網(wǎng)站數(shù)不勝數(shù),破解機(jī)制采用窮舉法,就是跑字典。為了加大MD5的破解難度,可以采用對(duì)字符串進(jìn)行多次加密處理。MD5加密算法的實(shí)現(xiàn)Stream流Stream流是指數(shù)據(jù)傳輸時(shí)的形態(tài),Java為Stream流提供了多個(gè)內(nèi)置類(lèi),如IO輸入、輸出流。流從功能上分為兩大類(lèi):節(jié)點(diǎn)流類(lèi)、過(guò)濾流類(lèi)(也叫處理流類(lèi))。程序直接操作目標(biāo)設(shè)備所對(duì)應(yīng)的類(lèi)叫節(jié)點(diǎn)流類(lèi)。程序通過(guò)間接流類(lèi)調(diào)用節(jié)點(diǎn)流類(lèi)讀取不同類(lèi)型的數(shù)據(jù)叫過(guò)濾流類(lèi),也稱(chēng)為包裝類(lèi)。Stream流簡(jiǎn)介Stream流在開(kāi)發(fā)中,流是一種常見(jiàn)的形態(tài),如文件的輸入輸出,都需要以流的形態(tài)進(jìn)行操作。在操作流之前首先要生成流,流生成方法如表6.3所示。方法說(shuō)明Stream流中間操作負(fù)責(zé)將一種類(lèi)型的流轉(zhuǎn)換為另一種類(lèi)型的流,調(diào)用中間操作只會(huì)設(shè)置流管道的下一個(gè)階段,不會(huì)啟動(dòng)任何操作。中間操作可分為無(wú)狀態(tài)和有狀態(tài)操作。無(wú)狀態(tài)操作(比如filter()或map())可獨(dú)立處理每個(gè)元素,有狀態(tài)操作可以對(duì)之前影響其他元素處理的元素狀態(tài)進(jìn)行合并。
方法說(shuō)明Stream流執(zhí)行終止操作時(shí),會(huì)終止流管道,如果想再次編輯同一個(gè)數(shù)據(jù)集,可以設(shè)置一個(gè)新的流管道。數(shù)據(jù)集的處理在執(zhí)行終止操作時(shí)開(kāi)始,比如縮減(sum()或max())、應(yīng)用(forEach())或搜索(findFirst())操作。方法說(shuō)明Stream流通過(guò)一個(gè)九宮格的小游戲,體現(xiàn)Stream流的操作機(jī)制,運(yùn)行效果如圖6.9所示。實(shí)現(xiàn)步驟如下所示:初始化函數(shù)(畫(huà)筆、顏色等)。具體代碼如CORE0601所示。通過(guò)myDraw()方法將游戲界面九等分,并根據(jù)圓形下標(biāo)位置將其繪制到相應(yīng)的方格中具體代碼如CORE0602所示。設(shè)置觸屏監(jiān)聽(tīng),當(dāng)觸屏?xí)r調(diào)用該方法。具體代碼如CORE0603所示。方法說(shuō)明Stream流設(shè)置按鍵監(jiān)聽(tīng),使用輸出和輸入流在SD卡中存取游戲狀態(tài)。具體代碼如CORE0604所示。調(diào)用myDraw()方法和logic()方法實(shí)現(xiàn)游戲的邏輯,具體代碼如CORE0605所示。響應(yīng)函數(shù),實(shí)例線程并設(shè)置啟動(dòng)線程,具體代碼如CORE0606所示。運(yùn)行程序,效果如圖6.9所示。方法說(shuō)明通過(guò)如下步驟實(shí)現(xiàn)U酒保的打車(chē)代駕模塊,具體步驟如下所示。第一步:將UJB_01導(dǎo)入工程,在其基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)UJB項(xiàng)目打車(chē)代駕模塊。首先點(diǎn)擊“OpenanexistingAndroidStudioproject”打開(kāi)磁盤(pán)路徑查找所需項(xiàng)目并導(dǎo)入,如圖6.10、圖6.11所示。實(shí)現(xiàn)如圖6.12所示結(jié)果圖。第二步:打車(chē)代駕界面布局格式。如圖6.4所示。具體如代碼CORE0607所示。任務(wù)實(shí)施第三步:在src文件夾下建立MainActivity.java文件中,實(shí)現(xiàn)點(diǎn)擊“打車(chē)/代駕”小標(biāo),跳轉(zhuǎn)到HelpFragment。具體如代碼CORE0608所示。第四步:對(duì)打車(chē)和代駕按鈕設(shè)置監(jiān)聽(tīng),并判斷是否連接網(wǎng)絡(luò),實(shí)現(xiàn)有網(wǎng)的情況下點(diǎn)擊后可進(jìn)入打車(chē)代駕界面的功能。具體如代碼CORE0609所示。第五步:新建類(lèi)DaCheActivity,在onCreate()方法里面獲取打車(chē)緩存緩存文件。具體如代碼CORE0610所示。第六步:判斷網(wǎng)絡(luò)狀態(tài),有網(wǎng)時(shí)更新列表并顯示數(shù)據(jù),無(wú)網(wǎng)時(shí),獲取本地緩存信息顯示在列表。具體如代碼CORE0611所示。任務(wù)實(shí)施第七步:在有網(wǎng)的情況下,向服務(wù)器獲取信息,實(shí)現(xiàn)適配器實(shí)時(shí)更新。具體如代碼CORE0612所示。第八步:有網(wǎng)時(shí),通過(guò)WriteToLocal()方法將列表信息寫(xiě)入本地。具體如代碼CORE0613所示。第九步:無(wú)網(wǎng)絡(luò)時(shí),從本地獲取獲取緩存信息,并把信息顯示在列表。具體如代碼CORE0614所示。第十步:新建DriverItemActivity獲得傳參并實(shí)現(xiàn)打電話功能。具體如代碼CORE0615所示。任務(wù)實(shí)施第十一步:編寫(xiě)點(diǎn)擊事件,通過(guò)原生動(dòng)作實(shí)現(xiàn)撥打電話的功能。具體如代碼CORE0616所示。第十二步:新建類(lèi)DaiJiaActivity,在onCreate()方法里面獲取緩存。具體如代碼CORE0617所示。第十三步:進(jìn)行網(wǎng)絡(luò)的判斷。具體如代碼CORE0618所示。第十四步:通過(guò)getSimulationNews()方法在有網(wǎng)和沒(méi)網(wǎng)的情況下獲取信息。具體如代碼CORE0619所示。第十五步:有網(wǎng)時(shí)將文本寫(xiě)入本地。具體如代碼CORE0620所示。任務(wù)實(shí)施第十六步:沒(méi)網(wǎng)時(shí)從本地獲取文本。具體如代碼CORE0621所示。第十七步:新建DriverItemActivity獲得傳參并實(shí)現(xiàn)打電話功能。具體如代碼CO
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:緊密型城市醫(yī)療集團(tuán)內(nèi)患者就醫(yī)行為與衛(wèi)生資源配置的協(xié)同性研究
- 2025年專(zhuān)題講座心得體會(huì)樣本(3篇)
- 2025年度木材行業(yè)木方材料進(jìn)出口采購(gòu)合同范本4篇
- 二零二五版現(xiàn)代農(nóng)業(yè)園區(qū)麻石灌溉系統(tǒng)合同4篇
- 二零二五年度知識(shí)產(chǎn)權(quán)許可使用合同爭(zhēng)議處理規(guī)則范本4篇
- 二零二五年度城市公交公司駕駛員服務(wù)合同標(biāo)準(zhǔn)模板3篇
- 2025年公共安全項(xiàng)目投標(biāo)失敗應(yīng)急響應(yīng)與合同條款合同3篇
- 二零二五年度出差安全教育與安全保障合作協(xié)議4篇
- 二零二五年度出境游領(lǐng)隊(duì)導(dǎo)游服務(wù)合同4篇
- 二零二五版夾板行業(yè)供應(yīng)鏈管理合作協(xié)議4篇
- 2025貴州貴陽(yáng)市屬事業(yè)單位招聘筆試和高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年住院醫(yī)師規(guī)范化培訓(xùn)師資培訓(xùn)理論考試試題
- 期末綜合測(cè)試卷(試題)-2024-2025學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)人教版
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 結(jié)構(gòu)力學(xué)本構(gòu)模型:斷裂力學(xué)模型:斷裂力學(xué)實(shí)驗(yàn)技術(shù)教程
- 汽車(chē)、電動(dòng)車(chē)電池火災(zāi)應(yīng)對(duì)
- 中醫(yī)藥適宜培訓(xùn)-刮痧療法教學(xué)課件
- 免疫組化he染色fishish
- 新東方四級(jí)詞匯-正序版
- 借名購(gòu)車(chē)位協(xié)議書(shū)借名購(gòu)車(chē)位協(xié)議書(shū)模板(五篇)
- 同步輪尺寸參數(shù)表詳表參考范本
評(píng)論
0/150
提交評(píng)論