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

正文內(nèi)容

基于android平臺(tái)新聞客戶端設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2024-12-06 02:32本頁(yè)面

【導(dǎo)讀】作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個(gè)人或集體。已經(jīng)發(fā)表或撰寫過(guò)的作品成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在。文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。隨著PC互聯(lián)網(wǎng)日趨飽和,智能手機(jī)的技術(shù)突破,移動(dòng)互聯(lián)網(wǎng)發(fā)生了井噴式的發(fā)展,發(fā)展迅猛的一種新聞閱讀應(yīng)用。動(dòng)新聞客戶端的獨(dú)特優(yōu)勢(shì)有密切關(guān)系。新聞呈現(xiàn)方式上,采用了圖文并茂方式,既發(fā)揮了門戶網(wǎng)站新聞報(bào)道方式上的專長(zhǎng),們的手機(jī)進(jìn)行通訊,手機(jī)終端控制窗簾,空調(diào),電燈已經(jīng)是司空見慣。Android操作系統(tǒng)是由Google2021年研發(fā)發(fā)布的一種開源操作系統(tǒng),發(fā)布以來(lái),一直受到人們的追捧,短短幾年之間,它就已經(jīng)在全球市場(chǎng)份額躍居第一。為了解決以上的諸多不便,基于Android的新聞客戶端也應(yīng)運(yùn)而生。的新聞客戶端應(yīng)用程序,使Android用戶可以方便,快捷的獲取新聞資訊。本文論述了Android移動(dòng)新聞客戶端的設(shè)計(jì)和開發(fā)實(shí)現(xiàn)過(guò)程。

  

【正文】 w i p e R e f r e s h L a y o u tF u n n y D u a n z i F r a g m e n t 圖 42 部分 Fragment 繼承關(guān)系圖 ListView 異步加載圖片亂序 由于 ListView 的復(fù)用 view 的機(jī)制,在異步加載網(wǎng)絡(luò)圖片的時(shí)候,就會(huì)出現(xiàn)圖片顯示不一致,亂跳的現(xiàn)象。究其原因是,移除屏幕外的控件很快就會(huì)被新進(jìn)入屏幕的控件重新利用起來(lái),都引用的是同一個(gè)實(shí)例。 ListView 復(fù)用 View 的原理圖如圖 43 所示。一般常用做法就是設(shè)置 Tag,然后根據(jù)是否是設(shè)置的 tag,是否顯示該圖片。 湖北第二師范學(xué)院本科畢業(yè)論文 19 圖 43 ListView 復(fù)用 View 原理圖 設(shè)置 Tag (urls[i])。 //給 ImageView 設(shè)置標(biāo)記 根據(jù) Tag 顯示圖片 ImageView imageView = (ImageView) (url)。 if (imageView != null amp。amp。 drawable != null) { (drawable)。 } 新聞客戶端三級(jí)緩存策略 三級(jí)緩存原理 三級(jí)緩存即是內(nèi)存緩存, sdcard文件緩存,網(wǎng)絡(luò)緩存。應(yīng)用程序獲取數(shù)據(jù)時(shí),首先從內(nèi)存中讀取,如果內(nèi)存緩存有數(shù)據(jù),則直接返回。否則從文件緩存中讀取,如果文件緩存中有數(shù)據(jù),則返回?cái)?shù)據(jù),同時(shí)將數(shù)據(jù)保存至內(nèi)存中。如果文件緩存中沒(méi)有數(shù)據(jù),則請(qǐng)求網(wǎng)絡(luò)獲取,如果網(wǎng)絡(luò)獲取成功 ,則返回?cái)?shù)據(jù),并且將數(shù)據(jù)緩存至湖北第二師范學(xué)院本科畢業(yè)論文 20 文件和內(nèi)存中。三級(jí)緩存策略原理如圖 43所示。 新 聞 客 戶 端 A p p內(nèi) 存 緩 存文 件 緩 存網(wǎng) 絡(luò) 緩 存從 內(nèi) 容 緩 存 讀內(nèi) 存 緩 存 為 n u l l , 從 文 件 緩 存 讀文 件 緩 存 為 n u l l , 從 網(wǎng) 絡(luò) 獲 取請(qǐng) 求 網(wǎng) 絡(luò) 成 功 , 將 數(shù) 據(jù) 緩 存到 文 件 中文 件 緩 存 獲 取 成 功 , 將 數(shù)據(jù) 緩 存 到 內(nèi) 存內(nèi) 存 緩 存 讀 取 成 功 ,直 接 返 回 圖 43 三級(jí)緩存原理圖 緩存實(shí)現(xiàn) 首次請(qǐng)求網(wǎng)絡(luò)后,將請(qǐng)求得到的 json格式數(shù)據(jù)保存至本地文件中。方便退出應(yīng)用程序后,再進(jìn)入程序無(wú)內(nèi)存緩存時(shí),可以加載本地緩存,節(jié)約用戶數(shù)據(jù)流量。 緩存工具類 CacheUtil,請(qǐng)求網(wǎng)絡(luò)成功后,調(diào) ()方法將得到的 json數(shù)據(jù)保存至文件中。當(dāng)內(nèi)存緩存中沒(méi)有緩存時(shí),調(diào) 用 ()得到文件緩存的 json數(shù)據(jù),通過(guò) gson解析和 xUtils的 BitmapUtils將圖片文件和文字內(nèi)容顯示在界面上。 package 。 import 。 /** * Created by Administrator on 2021/4/14. */ public class CacheUtil { /** * 設(shè)置緩存 * * @param context 上下文 * @param key 請(qǐng)求服務(wù)器的 url * @param value 服務(wù)器返回的 json串 */ 湖北第二師范學(xué)院本科畢業(yè)論文 21 public static void setCache(Context context,String fileName, String key, String value) { (context, fileName, key, value)。 } public static String getCache(Context context,String fileName, String key) { return (context, fileName, key, null)。 } } 總體結(jié)構(gòu)和功能模塊 側(cè)邊欄功能 側(cè)邊欄是為在有限手機(jī)空間容納更多顯示內(nèi)容的組件,在一些小屏幕手機(jī)上是十分有必要的。該新聞客戶端側(cè)邊欄包含 ListView組件,用戶可以點(diǎn)擊 ListView中的不同的 Item切換到不同的顯示界面,同時(shí)側(cè)邊欄選項(xiàng)使用背景選擇器,方便告知用戶當(dāng)前已經(jīng)選中或成功選中了哪類信息在主界面中顯示。如圖 44所示。 圖 44 側(cè)邊欄顯示圖 湖北第二師范學(xué)院本科畢業(yè)論文 22 新聞模塊功能 用戶啟動(dòng)該新聞客戶端,經(jīng)過(guò)歡迎頁(yè)面進(jìn)入主界面,默認(rèn)情況下,主界面顯示新聞模塊,用戶可以通過(guò)左右滑動(dòng)切換查看不同分類的新聞信息。新聞模塊每個(gè)分類的頁(yè)面是采用 CarouselView+ListView顯示新聞信息的,同時(shí),為提升用戶體驗(yàn)和應(yīng)用程序的性能優(yōu)化,客戶端每次向服務(wù)器只請(qǐng)求顯示 20條數(shù)據(jù),由于該 ListView是 自定義的 PullRefreshListView,集成下拉刷新和上拉加載更多的功能,用戶可以在新聞顯示頁(yè)面通過(guò)下拉刷新,加載最新的數(shù)據(jù)和上拉加載更多,查看更多新聞信息。如圖 45所示。 圖 45 新聞模塊顯示圖 PullRefreshListView 的實(shí)現(xiàn)過(guò)程: 繼承 ListView 控件 ,以 addHeaderView, addFooterView 的方式添加下拉刷新的頭布局和加載更多的腳布局,默認(rèn)情況下將將頭腳布局 padding 值設(shè)置為它們自己高度的負(fù)值,達(dá)到隱藏布局的效果。重寫 OnTouchEvent 方 法,根據(jù)手指在屏幕上豎直方向滑動(dòng)的距離,重新設(shè)置 padding,將頭布局漸漸顯示出來(lái)。并根據(jù)不同的狀態(tài)觸發(fā)相應(yīng)的事件。 點(diǎn)擊新聞模塊的 item,進(jìn)入到新聞詳情頁(yè)面,該頁(yè)面采用 WebView通過(guò) URL加載湖北第二師范學(xué)院本科畢業(yè)論文 23 網(wǎng)頁(yè),通過(guò)設(shè)置 WebView的屬性,點(diǎn)擊網(wǎng)頁(yè)中的鏈接,不會(huì)跳轉(zhuǎn)到系統(tǒng)的瀏覽器訪問(wèn),而是在該 WebView內(nèi)訪問(wèn),點(diǎn)擊手機(jī) back按鍵,顯示前一次網(wǎng)頁(yè)內(nèi)容,點(diǎn)擊Toolbar的上一級(jí)按鈕才退出網(wǎng)頁(yè)頁(yè)面。網(wǎng)頁(yè)的正文字號(hào)大小是通過(guò)設(shè)置頁(yè)面進(jìn)行設(shè)置。如圖 46所示。 圖 46 新聞模塊的新聞詳情頁(yè) 圖片模塊功能 用戶點(diǎn)擊側(cè)邊欄的圖片 item,主界面切換到圖片顯示模塊,其中圖片以瀑布流的方式進(jìn)行顯示的,體現(xiàn)不規(guī)則的美感,用戶可以長(zhǎng)按圖片 item,選擇將圖片保存至 sdcard中。如圖 46所示。 湖北第二師范學(xué)院本科畢業(yè)論文 24 圖 46 圖片保存功能圖 段子模塊功能 用戶點(diǎn)擊側(cè)邊欄段子 item,主界面切換到段子模塊,其中顯示段子 item采用Material Design風(fēng)格,在垂直于屏幕方向上有一定像素值的高度,像是懸浮于背景之上似的。如圖 47所示。 湖北第二師范學(xué)院本科畢業(yè)論文 25 圖 47 段子模塊顯示圖 設(shè)置模塊功能 用戶點(diǎn)擊側(cè)邊欄設(shè)置 item,應(yīng)用程序跳轉(zhuǎn)到一個(gè)新的設(shè)置頁(yè)面界面,該設(shè)置頁(yè)面通過(guò)點(diǎn)擊不同的設(shè)置項(xiàng)可以對(duì)新聞客戶端的系統(tǒng)屬性進(jìn)行設(shè)置。如圖 48所示。 圖 48 設(shè)置顯示界面 湖北第二師范學(xué)院本科畢業(yè)論文 26 第 6 章 系統(tǒng)測(cè)試 為確保新聞客戶端的健壯性,以及排除隱藏的 Bug,使用 sdk tools 里的工具adb shell monkey進(jìn)行測(cè)試,在 mand中輸入 adb shell monkey p v 10000,程序自動(dòng)點(diǎn)擊 10000 次,將其中的一些問(wèn)題解決掉,最后測(cè)試結(jié)果如圖 61所示。 圖 61 測(cè)試結(jié)果圖 該圖顯示結(jié)果為 monkey finished,表示程序在自動(dòng)化的點(diǎn)擊 10000 次后,沒(méi)有由于潛在的錯(cuò)誤而掛掉,驗(yàn)證了該新聞客戶端程序具有較好的健壯性。 湖北第二師范學(xué)院本科畢業(yè)論文 27 第 7 章 總結(jié) 本新聞客戶端是基于 Android 版本開發(fā)的,結(jié)合當(dāng)前 Google 推出的 Material Design 設(shè)計(jì)風(fēng)格,和市場(chǎng)上已經(jīng)發(fā)布的 Android 應(yīng)用程序保持一致的 UI 風(fēng)格,符合人們的使用習(xí)慣。本畢業(yè)設(shè)計(jì)之所以選擇以新聞客戶端為題目,一來(lái)可以將了解到的 Material Design 應(yīng)用到項(xiàng)目開發(fā) 中,二來(lái)可以學(xué)習(xí)到 Android 中的圖片的三級(jí)緩存技術(shù)。在整個(gè)新聞客戶端的開發(fā)的過(guò)程中,遇到了很多難解的問(wèn)題和困難,由于該項(xiàng)目是由本人單獨(dú)設(shè)計(jì)開發(fā)的,所以在遇到問(wèn)題時(shí),只能自己通過(guò)查資料來(lái)解決,浪費(fèi)了很多的時(shí)間,導(dǎo)致該項(xiàng)目的功能有些欠缺,不夠完善。所幸,經(jīng)過(guò)在網(wǎng)上查資料,看 CSDN 博客,一些問(wèn)題或 bug 都基本解決了。 通過(guò)本次的畢業(yè)設(shè)計(jì),我確實(shí)是學(xué)到了以前不熟悉和不了解的技術(shù)知識(shí)。Android 中自定義控件是 Android 開發(fā)者的進(jìn)階之路,面試常問(wèn)問(wèn)題。在此之前,我實(shí)習(xí)面試只能回答自定義 View 時(shí),需要重寫 onMeasure, onLayout, onDraw 方法,而現(xiàn)在我可以寫出一些滿足需求的自定義控件,這使得在拿到需求時(shí),能夠很輕松的實(shí)現(xiàn)出需求設(shè)計(jì)的效果。 在本項(xiàng)目的開發(fā)過(guò)程中,遇到的一些問(wèn)題,通過(guò)在老師,同學(xué)的幫助下,以及網(wǎng)上大神們分享的博客,基本問(wèn)題都解決啦,為了今后的重溫這些技術(shù)難題,我將它們記錄在 CSDN 博客上,通過(guò)開通 CSDN 博客,記錄一些技術(shù)問(wèn)題,能夠提升自身的技術(shù)儲(chǔ)備,畢竟,網(wǎng)上一些大神也是這么做的。在這個(gè)項(xiàng)目開發(fā)過(guò)程中,以前不曾用到的技術(shù)點(diǎn),在這個(gè)項(xiàng)目中嘗試使用,使我學(xué)習(xí)到了很多實(shí)際工作開發(fā)中 用到的技術(shù),例如監(jiān)聽器的回調(diào),如果通過(guò)構(gòu)造函數(shù)傳進(jìn)來(lái),可能會(huì)出現(xiàn) view 沒(méi)有初始化完成,就調(diào)用對(duì)應(yīng)事件,出現(xiàn) NullPointerException。同時(shí),在以后的學(xué)習(xí)過(guò)程,需要更加注重應(yīng)用程序的性能優(yōu)化,內(nèi)存優(yōu)化問(wèn)題,編寫更加規(guī)范,更加優(yōu)秀的應(yīng)用程序。 湖北第二師范學(xué)院本科畢業(yè)論文 28 參考文獻(xiàn) [1] xUtils API 文檔 [2] CSDN 博客 , Android 下拉刷新完全解析,教你如何一分鐘實(shí)現(xiàn)下拉刷新功能 [3] CSDN 博客, Android Fragment 完全解析,關(guān)于碎片你所需知道的一切 , [4] CSDN 博客, Android RecyclerView 使用完全解析 體驗(yàn)藝術(shù)般的控件 , [5] CSDN 博客, Android 深入理解 Android 中的自定義屬性 , [6] CSDN 博客, Android DrawerLayout 高仿 雙向側(cè)滑菜單 [7] 博客 RecyclerView 實(shí)例 實(shí)現(xiàn)可下拉刷新上拉加載更多并可切換線性流和瀑布流模式, [8] joseph Annuzzi 著 林學(xué)森譯, Android 應(yīng)用程序開發(fā)權(quán)威指南(第四版)電子 工業(yè)出版社 [9] 吳亞峰,蘇亞光,于復(fù)興 Android 應(yīng)用程序開發(fā)開發(fā)大全(第三版)人民郵電出版社 2021 [10] 郭金尚 Android 經(jīng)典項(xiàng)目案例開發(fā)實(shí)戰(zhàn)寶典 清華大學(xué)出版社 2021 [11] 李寧 著 Android 開發(fā)完全講義(第三版)水利水電出版社 2021 [12] 陳文,郭依正 深入理解 Android 網(wǎng)絡(luò)編程 機(jī)械工業(yè)出版社 2021 [13] 陳強(qiáng) 精通 Android 實(shí)例開發(fā),人民郵電出版社 [14] 林起永 Android 框架揭秘 人民郵電出版社 2021 [15] 美 ??藸? Java 編程思想 機(jī)械工業(yè)出版社 2021 湖北第二師范學(xué)院本科畢業(yè)論文 29 致 謝 通過(guò)幾個(gè)月的構(gòu)思和設(shè)計(jì),在指導(dǎo)老師不厭其煩的指導(dǎo)和無(wú)私幫助下,本新聞客戶端的設(shè)計(jì)基本完成,可以滿足用戶閱讀新聞信息的需要。由于時(shí)間安排的不合理,以及本人手機(jī)應(yīng)用程序開發(fā)經(jīng)驗(yàn)的欠缺,使得該新聞客戶端在后續(xù)的時(shí)間還要繼續(xù)完善,并配置一個(gè)在線服務(wù)器,真正使用戶可以隨時(shí)隨地實(shí)時(shí)瀏覽新聞信息。 開發(fā)過(guò)程中,遇到一些難以解決的問(wèn)題,在老師悉 心指導(dǎo)下,基本上都已經(jīng)解決掉了,在這次畢業(yè)設(shè)計(jì)項(xiàng)目開發(fā)中,最大的收獲就是,使我明白了要怎樣全面的考慮代碼的復(fù)用,而不是一開始就動(dòng)手寫代碼,這導(dǎo)致很多代碼過(guò)度冗余。 在這次的畢業(yè)設(shè)計(jì)中,如果沒(méi)有指導(dǎo)老師給予的支持和同學(xué)們?cè)诶щy時(shí)給我的鼓勵(lì),我可能無(wú)法克服這個(gè)過(guò)程中遇到的困難。也讓我明白了即使一個(gè)簡(jiǎn)單的應(yīng)用程序,要想流暢,穩(wěn)定的運(yùn)行起來(lái),并不是隨便使用哪個(gè) API 就行的,需要對(duì)其全面的分析,選擇最適合的 API 進(jìn)行開發(fā)。 最后,我感謝我的指導(dǎo)老師,他在整個(gè)過(guò)程中給予我的支持和幫助,使我能夠在規(guī)定的有限時(shí)間內(nèi)完成該畢 業(yè)設(shè)計(jì)。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1