基于Android Studio的餅圖賬單的設(shè)計(jì)與開(kāi)發(fā)論文
《基于Android Studio的餅圖賬單的設(shè)計(jì)與開(kāi)發(fā)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于Android Studio的餅圖賬單的設(shè)計(jì)與開(kāi)發(fā)論文(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、. 畢業(yè)論文 基于Android Studio的餅圖賬單的設(shè)計(jì)與開(kāi)發(fā)Design and Development of PieChart Billing Based on Android Studio 目錄 目錄II 摘要III AbstractIII 引言3 第一章 Android根本介紹3 第二章國(guó)外手機(jī)系統(tǒng)現(xiàn)狀3 2.1 iOS:生態(tài)封閉和推送機(jī)制3 2.2 Android:依然碎片化,但安卓7.0速度提升3 2.3 Win10m:機(jī)型太少,能夠更新不多3 第三章 Android相關(guān)組件介紹及分析3 3.1 Fragement 3 3.2 Fragement
2、生命周期3 3.3 ViewPager 3 3.4 JSON 3 3.5 MPAndroidChart 3 第四章 Android活動(dòng)的生命周期3 4.1 活動(dòng)的生命狀態(tài)3 4.2 活動(dòng)的運(yùn)作流程3 第五章餅圖賬單的設(shè)計(jì)與實(shí)現(xiàn)3 5.1 研究目標(biāo)3 5.2 實(shí)現(xiàn)步驟3 使用ViewPager+Fragment實(shí)現(xiàn)案例布局3 5.2.2 Json數(shù)據(jù)解析、封裝、傳遞給Fragment 3 5.2.3 繪制賬單餅狀圖并顯示賬單數(shù)據(jù)3 5.2.4 實(shí)現(xiàn)切換按鈕點(diǎn)擊事件〔顯示其他月賬單界面〕3 5.2.5 程序完成3 第六章主要結(jié)論3 參考文獻(xiàn)3 致3 附錄3
3、 摘要 隨著信息化社會(huì)的開(kāi)展,Android智能產(chǎn)品已日益成為越來(lái)越多的人們選擇的移動(dòng)終端產(chǎn)品。伴隨著Android智能手機(jī)與平板電腦已經(jīng)在我們生活大量的使用,越來(lái)越多的基于Android開(kāi)發(fā)平臺(tái)的應(yīng)用也隨之而出,為豐富人們使用Android智能產(chǎn)品的用途,使其可以幫人們記錄一些事情,并提醒用戶做出相應(yīng)的操作。本文設(shè)計(jì)開(kāi)發(fā)的本Android餅圖賬單軟件也是應(yīng)用開(kāi)發(fā)的一個(gè)idea,該軟件能幫助人們查看顯示每月賬單,從而合理規(guī)劃消費(fèi)和投資增強(qiáng)對(duì)個(gè)人財(cái)務(wù)的敏感度,提高理財(cái)水平。 Android餅圖賬單主要特點(diǎn)在于利用餅圖直觀的展示各項(xiàng)消費(fèi)所占當(dāng)月總支出的百分比,并且在點(diǎn)擊具體消費(fèi)容實(shí)現(xiàn)餅圖下滑放
4、大使容更加詳細(xì)。 Android餅圖賬單的開(kāi)發(fā)過(guò)程包括1.ViewPager+Fragment打造左右滑動(dòng)UI架構(gòu),2.Json數(shù)據(jù)解析,封裝,與數(shù)據(jù)傳遞,3.MPAndroidChart打造餅狀圖的功能,4.實(shí)現(xiàn)與問(wèn)題解決。本次開(kāi)發(fā)工具選擇了。 關(guān)鍵詞:賬單;Android Studio;ViewPage;Fragment;Json;MPAndroidChart Abstract With the development of information society, Android intelligent products have increasingly bee more an
5、d more people choose mobile terminal products. With Android intelligent mobile phone and tablet puter is already in use in our life a lot, more and more applications based on Android platform are also appeared, for rich people use Android use of smart products, which can help people to record some o
6、f the things that make the corresponding operation and remind users. A idea this paper designed and developed the Android pie chart is billing software application development, the software can help people see the display monthly bills, thus the reasonable planning of consumption and investment to e
7、nhance sensitivity to personal finance, improve financial management level. Android pie chart is mainly characterized by the use of the pie chart shows the proportion of consumption of the total monthly e*penditure, and click on the specific content of the consumer to achieve the decline in the con
8、tent of the cake ambassador content. The development process of Android pie bills including 1.ViewPager+Fragment sliding around to create the UI architecture, 2.Json data analysis, package, and data transfer, 3.MPAndroidChart to create a pie chart, 4 implementation and problem solving. The developm
9、ent tool selected Android Studio2.3.1. Key words: Android Studio; ViewPage; Fragment; Json; MPAndroidChart . > . 引言 目前隨著移動(dòng)設(shè)備越來(lái)越普及以及移動(dòng)設(shè)備的硬件的提升,移動(dòng)設(shè)備的功能越來(lái)越完善,移動(dòng)設(shè)備的系統(tǒng)平臺(tái)也日漸熾熱起來(lái)。目前國(guó)最常見(jiàn)的移動(dòng)開(kāi)發(fā)平臺(tái)有Symbian,iPhone,Windows Phone以及當(dāng)下正在
10、逐步興起的Android。目前為止國(guó)已經(jīng)有很多Android系統(tǒng)的用戶。截止2010年第二季度Android系統(tǒng)的國(guó)市場(chǎng)占有率已經(jīng)過(guò)10%,在西歐以及北美智能手機(jī)市場(chǎng)占有率也在20%左右??梢?jiàn)Android系統(tǒng)正在崛起之中。但是對(duì)于Android系統(tǒng)的應(yīng)用和開(kāi)發(fā)在國(guó)仍然屬于起步和探索階段。急需要大量的相關(guān)技術(shù)和人員的投入。 第一章 Android根本介紹 Android一詞的本義指“機(jī)器人〞,同時(shí)是Google于2007年11月5日宣布的基于Linu*平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Android的Logo是由Ascender公司設(shè)計(jì)的,誕生
11、于2010年,其設(shè)計(jì)靈感源于男女廁所門(mén)上的圖形符號(hào),于是布洛克繪制了一個(gè)簡(jiǎn)單的機(jī)器人,它的軀干就像錫罐的形狀,頭上還有兩根天線,Android小機(jī)器人便誕生了。其中的文字使用了Ascender公司專(zhuān)門(mén)制作的稱(chēng)之為“Droid 〞的字體。Android是一個(gè)全身綠色的機(jī)器人,綠色也是Android的標(biāo)志。顏色采用了PMS 376C和RGB中十六進(jìn)制的#A4C639來(lái)繪制Android操作系統(tǒng)的品牌象征。有時(shí)候,它們還會(huì)使用純文字的Logo。[1] 圖一-1Logo 第二章 國(guó)外手機(jī)系統(tǒng)現(xiàn)狀 在過(guò)去很長(zhǎng)的一段時(shí)間,蘋(píng)果iOS、谷歌安卓和微軟Windows被稱(chēng)作三大移動(dòng)操作系統(tǒng),盡管隨著視窗系
12、統(tǒng)在手機(jī)領(lǐng)域的份額不斷下滑,“萬(wàn)年老三〞的寶座已經(jīng)易位給了YunOS,但不少人習(xí)慣上還是認(rèn)為他們是智能手機(jī)系統(tǒng)的代表。 而說(shuō)到這三大系統(tǒng)的更新方面,就是另一個(gè)局面了,可以說(shuō)有人歡喜有人愁。今天就帶大家看看這三大手機(jī)系統(tǒng)現(xiàn)在的更新現(xiàn)狀。 2.1 iOS:生態(tài)封閉和推送機(jī)制 眾所周知,iOS是一個(gè)生態(tài)封閉的移動(dòng)操作系統(tǒng)。蘋(píng)果為了專(zhuān)注于營(yíng)造自己的生態(tài),在*些地方多多少少給用戶帶來(lái)了一些不便。但不得不成認(rèn),這樣的做法在系統(tǒng)升級(jí)上反而是有好處的,更便于集中管制。 圖二-1ios iOS只會(huì)預(yù)裝在蘋(píng)果設(shè)備上,而蘋(píng)果每年推出的iPhone一般不超過(guò)3款,即使是iPhone全系的數(shù)量加起來(lái),可能也就
13、和一家國(guó)產(chǎn)安卓廠商一年發(fā)布的新機(jī)數(shù)量差不多,再加上又是自家的系統(tǒng),在系統(tǒng)更新和維護(hù)的壓力上自然要小很多。 圖二-2IOS Lanchues 以最新的iOS 10為例,據(jù)國(guó)外分析機(jī)構(gòu)Fiksu〔數(shù)據(jù)截至去年10月〕統(tǒng)計(jì),iOS 10在正式版上線一個(gè)月后,系統(tǒng)覆蓋率已經(jīng)高達(dá)66.7%,大幅逆襲以往版本,當(dāng)然現(xiàn)在已經(jīng)不止這點(diǎn)了。而蘋(píng)果日前也向用戶推送了系統(tǒng),相信在看文章的iPhone用戶幾乎都升級(jí)了吧?當(dāng)然,iOS 10之所以覆蓋率能迅速上升,和蘋(píng)果的推送機(jī)制分不開(kāi)。新系統(tǒng)發(fā)布能讓用戶第一時(shí)間知道并立刻升級(jí)的,也就只有OTA了〔未越獄〕。蘋(píng)果采用的是一種間歇式提醒的方式,讓用戶想不升級(jí)都不行,因
14、為新系統(tǒng)的提醒更新頁(yè)面就一直在你眼前晃悠,根本無(wú)法無(wú)視。 2.2 Android:依然碎片化,但安卓7.0速度提升 相對(duì)于蘋(píng)果的封閉專(zhuān)一,安卓因?yàn)殚_(kāi)放而在系統(tǒng)升級(jí)上元?dú)獯髠?,要想升?jí)系統(tǒng)就對(duì)用戶選手機(jī)的眼光要求特別高,畢竟不是每臺(tái)安卓機(jī)都有資格升級(jí)。谷歌只能保證自己親兒子最快升級(jí),第三方廠商都是“同床異夢(mèng)〞:有像LG這樣7.0發(fā)布后78天就推送正式更新的〔版G5〕,也有像oppo、vivo這樣一個(gè)系統(tǒng)版本用到換機(jī)的。 圖二-3牛扎糖系統(tǒng) 根據(jù)谷歌2017年4月的安卓系統(tǒng)份額統(tǒng)計(jì),最新的牛軋?zhí)窍到y(tǒng)份額依然不容樂(lè)觀,合占不到5%,處于安卓系統(tǒng)主力的依然是棒棒糖和棉花糖。 圖二-44月份額
15、統(tǒng)計(jì) 這兩個(gè)系統(tǒng)份額的大幅度崛起,和去年國(guó)產(chǎn)手機(jī)的爆發(fā)不無(wú)關(guān)系,但爆發(fā)的同時(shí)也在市面上涌現(xiàn)了一批出廠預(yù)裝低版本系統(tǒng)的機(jī)型。但同時(shí)也要注意到,牛軋?zhí)窍到y(tǒng)的升級(jí)速度相比以往版本發(fā)布半年后要更加樂(lè)觀。這方面國(guó)產(chǎn)廠商也要記一功,諸如華為、一加等局部勤勞的國(guó)產(chǎn)廠商,盡管沒(méi)有搶到全球首發(fā),但是和首批升級(jí)的國(guó)際廠商在更新速度差距方面越來(lái)越小,甚至還超過(guò)了一些原本更新速度就不快的國(guó)際廠商,例如三星。 圖二-5Emotion UI 不過(guò)整體上看,盡管升級(jí)速度有所提升,但安卓在系統(tǒng)更新上還是有繼續(xù)進(jìn)步的空間。目前大局部廠商都關(guān)注于新系統(tǒng)發(fā)布當(dāng)年所推出的手機(jī)更新,而前一年的機(jī)型升級(jí)率都非常低,這點(diǎn)是不能無(wú)視的
16、。 2.3 Win10m:機(jī)型太少,能夠更新不多 如果說(shuō)在WM和WP時(shí)期,微軟在手機(jī)行業(yè)還算有點(diǎn)話語(yǔ)權(quán),則到了Win10m時(shí)期,即使是系統(tǒng)升級(jí)也顯得分外凄涼。 近日,微軟公布了Win10m的創(chuàng)作者更新〔Creators Updates〕,但出人意料的是,能夠升級(jí)這一系統(tǒng)的全球僅有13款機(jī)型,并且有不少都是第三方廠商的產(chǎn)品。 總之,在市場(chǎng)穩(wěn)定快速增長(zhǎng)的同時(shí),中卓手機(jī)市場(chǎng)將呈現(xiàn)五大開(kāi)展趨勢(shì):多媒體和移動(dòng)應(yīng)用需求的上升,將成為市場(chǎng)開(kāi)展的主要?jiǎng)恿?;PDA功能類(lèi)和開(kāi)放程度高的操作系統(tǒng)產(chǎn)品,將是手機(jī)產(chǎn)品的開(kāi)展勢(shì);產(chǎn)品持續(xù)大幅度降價(jià)和價(jià)格 競(jìng)爭(zhēng)趨于劇烈,將是產(chǎn)品價(jià)格開(kāi)展的趨勢(shì);渠道形式多樣化和手機(jī)
17、渠道仍占主流,將是產(chǎn)品渠道開(kāi)展的主要趨勢(shì);差異化售后效勞和個(gè)性化增值效勞,將成為產(chǎn)品效勞開(kāi)展的趨勢(shì)。總體來(lái)說(shuō),Android智能手機(jī)系統(tǒng)以它豐富多樣并超前的功能給我們的生活帶來(lái)了巨大改變但從利弊方面來(lái)說(shuō),它在給我們帶來(lái)方便的同時(shí),也帶來(lái)一些負(fù)面影響。因此,我們應(yīng)該理性面對(duì),理智使用,不能沉迷于此,更不能憑借它的功能為所欲為。我們應(yīng)該正確面對(duì)Android,讓它隨著時(shí)代與科技的開(kāi)展,給人類(lèi)帶來(lái)更多的福利。如此一來(lái),安卓手機(jī)的開(kāi)展前景才是一片光明的。 第三章 Android相關(guān)組件介紹及分析 3.1 Fragement Android 常用組件之一,可以有效解決不同屏幕分辯率的動(dòng)態(tài)和靈活UI
18、設(shè)計(jì)。大屏幕如平板,小屏幕如手機(jī),平板電腦的設(shè)計(jì)使得其有更多的空間來(lái)放更多的UI組件,而多出來(lái)的空間存放UI使其會(huì)產(chǎn)生更多的交互,從而誕生了fragments 。fragments 的設(shè)計(jì)不需要你來(lái)親自管理view hierarchy 的復(fù)雜變化,通過(guò)將Activity 的布局分散到frament 中,可以在運(yùn)行時(shí)修改activity 的外觀,并且由activity 管理的back stack 中保存些變化。 3.2 Fragement生命周期 (1) onAttach()//當(dāng)一個(gè)Fragment對(duì)象關(guān)聯(lián)到一個(gè)Activity時(shí)調(diào)用。 (2) onCreate()//初始創(chuàng)立Fragm
19、ent對(duì)象時(shí)調(diào)用。系統(tǒng)創(chuàng)立Fragments 時(shí)調(diào)用,可做執(zhí)行初始化工作或者當(dāng)程序被暫?;蛲nD時(shí)用來(lái)恢復(fù)狀態(tài),跟Activity 中的onCreate相當(dāng)。 (3) onCreateView()//創(chuàng)立與Fragment對(duì)象關(guān)聯(lián)的View視圖時(shí)調(diào)用。用于首次繪制用戶界面的回調(diào)方法,必須返回要?jiǎng)?chuàng)立的Fragments 視圖UI。假設(shè)你不希望提供Fragments 用戶界面則可以返回NULL。 (4) onActivityCreated()//當(dāng)Activity對(duì)象完成自己的onCreate方法時(shí)調(diào)用。 (5) onStart()//Fragment對(duì)象在ui可見(jiàn)時(shí)調(diào)用。 (6) onRe
20、sume()//Fragment對(duì)象的ui可以與用戶交互時(shí)調(diào)用。 (7) onPause()//Fragment對(duì)象可見(jiàn),但不可交互。有Activity對(duì)象轉(zhuǎn)為onPause狀態(tài)時(shí)調(diào)用。當(dāng)用戶離開(kāi)這個(gè)Fragments 的時(shí)候調(diào)用,這時(shí)你要提交任何應(yīng)該持久的變化,因?yàn)橛脩艨赡懿粫?huì)回來(lái)。更多的事件可以參考上圖的生命周期關(guān)系圖。 (8) onStop()//有空間完全遮擋;或者宿主Activity對(duì)象轉(zhuǎn)為onStop狀態(tài)時(shí)調(diào)用。 (9) onDestroyView()//Fragment對(duì)象清理view資源時(shí)調(diào)用,也就是移除fragment中的視圖。 (10) onDestroy()//F
21、ragment對(duì)象完成對(duì)象清理View資源時(shí)調(diào)用。 (11) onDetach()//Fragment對(duì)象沒(méi)有與Activity對(duì)象關(guān)聯(lián)時(shí)調(diào)用。 當(dāng)一個(gè)fragment被創(chuàng)立的時(shí)候執(zhí)行1-4; 當(dāng)這個(gè)fragment創(chuàng)立完畢,到對(duì)用戶可見(jiàn)的時(shí)候,執(zhí)行5-6; 當(dāng)這個(gè)fragment從可見(jiàn)到不可見(jiàn)時(shí),執(zhí)行7-8; 當(dāng)這個(gè)fragment被銷(xiāo)毀了〔或者持有它的activity被銷(xiāo)毀了〕,執(zhí)行9-11; 另外在3-5,可以使用Bundle對(duì)象保存一個(gè)fragment的對(duì)象。 3.3 ViewPager ViewPager繼承自ViewGroup,也就是ViewPager是一個(gè)容器類(lèi),
22、可以包含其他的View類(lèi) ViewPager是一個(gè)允許使用者左右滑動(dòng)數(shù)據(jù)頁(yè)面的布局管理器。你可以通過(guò)一個(gè)適配器〔PagerAdapter〕來(lái)管理要顯示的頁(yè)面。 不過(guò)要注意的是,這個(gè)類(lèi)目前還處于初期的設(shè)計(jì)和開(kāi)發(fā)。隨著今后兼容庫(kù)的更新,API文檔也會(huì)進(jìn)展更改,同時(shí)應(yīng)用程序在編譯時(shí)也需要對(duì)代碼進(jìn)展一定的修改。 ViewPager更多的時(shí)候會(huì)與Fragment一起使用,這是一種很好的方法來(lái)管理各個(gè)頁(yè)面的生命周期。Android提供了一些專(zhuān)門(mén)的適配器來(lái)讓ViewPager與Fragment一起工作,也就是FragmentPagerAdapter與FragmentStatePagerAdapter。
23、他們根本上可以滿足大局部常見(jiàn)的永續(xù)需求,并且他們都有簡(jiǎn)單的代碼樣例來(lái)展示如何用他們來(lái)建立一個(gè)完整的用戶頁(yè)面。 所以Viewpage具有以下特性: 1) ViewPager主要用來(lái)左右滑動(dòng)?!差?lèi)似圖片輪播〕 2) ViewPager要用適配器來(lái)連接“視圖〞和“數(shù)據(jù)〞?!泊蠹铱梢月?lián)想下listview的使用方法,理是類(lèi)似的〕 3) 官方推薦ViewPager與Fragment一起使用,并且有專(zhuān)門(mén)的適配器。 3.4 JSON JSON(JavaScript Object Notation, JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript 規(guī)的一個(gè)子集,采用完全
24、獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次構(gòu)造使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。 3.5 MPAndroidChart Android開(kāi)源圖表庫(kù)MPAndroidChart的簡(jiǎn)單用法。MPAndroidChart是一款基于Android的開(kāi)源圖表庫(kù),它可以實(shí)現(xiàn)在Android設(shè)備上繪制各種統(tǒng)計(jì)圖表。 第四章 Android活動(dòng)的生命周期 Android平臺(tái)是個(gè)手機(jī)作業(yè)系統(tǒng)。撇掉其他功能不談,手機(jī)的特性,就是應(yīng)該能隨時(shí)在未完成目前動(dòng)作的時(shí)候,暫停正在使用的功能,切換到接、接收短信模式,而且在接完回
25、到應(yīng)用程序時(shí),還希望能看到一樣的容?,F(xiàn)在用戶使用智能手機(jī),大多已習(xí)慣使用多工的作業(yè)系統(tǒng)(如windowsMobile),可以在用手機(jī)聽(tīng)音樂(lè)的同時(shí),執(zhí)行其他多個(gè)程序。同時(shí)執(zhí)行多個(gè)程序有它的明顯好處,但也有它的缺點(diǎn)。每多執(zhí)行一個(gè)應(yīng)用程序,就會(huì)多消耗一些系統(tǒng)存,而手機(jī)里的存是相當(dāng)有限的。當(dāng)同時(shí)執(zhí)行的程序過(guò)多,或是關(guān)閉的程序沒(méi)有正確釋放掉存,系統(tǒng)運(yùn)行時(shí)就會(huì)覺(jué)得越來(lái)越慢,甚至不穩(wěn)定。為了解決這個(gè)問(wèn)題,Android引入了一個(gè)新的機(jī)制—生命周期。 Android應(yīng)用程序的生命周期是由Android框架進(jìn)展管理,而不是由應(yīng)用程序直接控制。通常,每一個(gè)應(yīng)用程序(入口一般會(huì)是一個(gè)活動(dòng)的onCreate方法),
26、都會(huì)占據(jù)一個(gè)進(jìn)程。當(dāng)系統(tǒng)存即將缺乏的時(shí)候,會(huì)依照優(yōu)先級(jí)自動(dòng)進(jìn)展進(jìn)程的回收。不管是使用者或開(kāi)發(fā)者,都無(wú)法確定應(yīng)用程序何時(shí)會(huì)被回收。關(guān)于進(jìn)程的生命周期將在下一節(jié)中介紹,本節(jié)主要介紹活動(dòng)的生命周期。 一個(gè)活動(dòng)類(lèi)別除了OnCreate方法之外,還預(yù)先定義了onPause(暫停)、OnResume(繼續(xù))等的根本方法,當(dāng)從一個(gè)活動(dòng)切換到另一個(gè)活動(dòng)的時(shí)候,原來(lái)的活動(dòng)將經(jīng)過(guò)一連串的狀態(tài)改變。開(kāi)發(fā)者可以在程序中添加一些各狀態(tài)相對(duì)應(yīng)的流程,每次活動(dòng)狀態(tài)改變時(shí),就會(huì)執(zhí)行相對(duì)應(yīng)的流程。要讓用戶有好的使用體驗(yàn),活動(dòng)需要在各個(gè)周期中負(fù)責(zé)保管狀態(tài)、恢復(fù)狀態(tài)、傳送資料等工作。 4.1 活動(dòng)的生命狀態(tài) Android的
27、虛擬機(jī)是使用堆棧管理。主要有四種狀態(tài): (1) 活動(dòng)狀態(tài) 活動(dòng)狀態(tài)是指用戶啟動(dòng)應(yīng)用程序或活動(dòng)后,活動(dòng)運(yùn)行中的狀態(tài)。在Android平臺(tái)上,同一個(gè)時(shí)刻只會(huì)有一個(gè)活動(dòng)處于活動(dòng)或運(yùn)行狀態(tài)。其他的活動(dòng)都處于未啟動(dòng)、停頓或是暫停的狀態(tài)。 (2) 暫停狀態(tài) 暫停狀態(tài)是指當(dāng)活動(dòng)暫時(shí)暗下來(lái),退到背景畫(huà)面的狀態(tài)。當(dāng)警告對(duì)話框或來(lái)了時(shí),都會(huì)讓原來(lái)運(yùn)行的活動(dòng)退到背景畫(huà)面。新出現(xiàn)的警告對(duì)話框等界面元件蓋住了原來(lái)的活動(dòng)畫(huà)面?;顒?dòng)處在暫停狀態(tài)時(shí),用戶無(wú)法與原活動(dòng)互動(dòng)。 (3) 停頓狀態(tài) 停頓狀態(tài)是指有其他活動(dòng)正在執(zhí)行,而這個(gè)活動(dòng)己經(jīng)離開(kāi)屏幕,不再動(dòng)作的狀態(tài)。通過(guò)按返回鍵,可以調(diào)出所有處于停頓狀態(tài)的應(yīng)用程序列表
28、。處于停頓狀態(tài)的活動(dòng),還可以通過(guò)通知來(lái)喚醒。 (4) 已回收或未啟動(dòng)狀態(tài) 已回收或未啟動(dòng)狀態(tài)是指活動(dòng)尚未被啟動(dòng)、已經(jīng)被手動(dòng)終止或己經(jīng)被系統(tǒng)回收的狀態(tài)。要手動(dòng)終止活動(dòng),可以在程序中調(diào)用finish方法。如果是被系統(tǒng)回收,可能是因?yàn)榇嫒狈α耍韵到y(tǒng)根據(jù)存缺乏時(shí)的回收規(guī)則,將處于停頓狀態(tài)的活動(dòng)所占用的存回收。 圖四-1Activity活動(dòng)流程圖 圖4-1所示的七個(gè)狀態(tài)又可以歸納成三組: (1) 資源分配(創(chuàng)立/銷(xiāo)毀) 完整的活動(dòng)生命周期由創(chuàng)立狀態(tài)開(kāi)場(chǎng),由銷(xiāo)毀狀態(tài)完畢。創(chuàng)立時(shí)分配資源,銷(xiāo)毀時(shí)釋放資源。 (2) 可見(jiàn)與不可見(jiàn)(啟動(dòng)/重新啟動(dòng)/停頓) 當(dāng)活動(dòng)運(yùn)行到啟動(dòng)狀態(tài)時(shí),就可以在屏幕
29、上看到這個(gè)活動(dòng)。相反地,當(dāng)活動(dòng)運(yùn)行到停頓狀態(tài)時(shí),這個(gè)活動(dòng)就會(huì)從屏幕上消失。當(dāng)用戶按下返回鍵回到上一個(gè)活動(dòng)時(shí),會(huì)先到重新啟動(dòng)狀態(tài),再到一般的啟動(dòng)狀態(tài)。 (3) 用戶取得屏幕的控制權(quán)(繼續(xù)/暫停) 當(dāng)有個(gè)警告對(duì)話框、短信、等信息進(jìn)入時(shí),原來(lái)的活動(dòng)會(huì)進(jìn)入暫停狀態(tài),暫時(shí)放棄屏幕的控制權(quán),被中斷到背景去,將前景交給優(yōu)先級(jí)高的事件。當(dāng)這些優(yōu)先級(jí)高的事件處理完后,活動(dòng)就改良入繼續(xù)狀態(tài),此時(shí)又取得屏幕的控制權(quán)。 4.2 活動(dòng)的運(yùn)作流程 由實(shí)際運(yùn)行來(lái)看,我們可以歸納出所有Android應(yīng)用程序都遵循的運(yùn)作流程: (1) 一般啟動(dòng) 啟動(dòng)一個(gè)活動(dòng)的根本流程為onCreate一>onstart一>onRe
30、sume。該流程首先分配資源給這個(gè)活動(dòng)(創(chuàng)立狀態(tài)),然后將活動(dòng)的容顯示到屏幕上(啟動(dòng)狀態(tài));在一切就緒后,取得屏幕的控制權(quán)(恢復(fù)狀態(tài)),用戶可以開(kāi)場(chǎng)使用這個(gè)程序。 (2) 調(diào)用另一個(gè)活動(dòng) 調(diào)用另一個(gè)活動(dòng)的根本流程為onpause(l)一>onCreate(2)一>onstart(2)一>0nResume(2)一>onStop(l)。該流程首先凍結(jié)原來(lái)的活動(dòng),再交出屏幕控制權(quán);直到活動(dòng)2完成一般啟動(dòng)流程后,活動(dòng)1才會(huì)被停頓。 (3) 回到原來(lái)活動(dòng) 回到原來(lái)活動(dòng)的根本流程為onPause(2)一>onRestart(1)一>onstart(l)一>onResume(1)一>onstop(2
31、)一>onDestroy(2)。另外按返回鍵也可以回到原來(lái)的活動(dòng)。 (4) 退出完畢 退出完畢的根本流程為onPause一>onStop一>onDestroy。如果程序中有直接調(diào)用finish方法來(lái)關(guān)閉活動(dòng)的話,系統(tǒng)會(huì)跳過(guò)先凍結(jié)的階段,直接暫停,停頓,然后銷(xiāo)毀。 (5) 回收后再啟動(dòng) 回收后再啟動(dòng)的根本流程為oncreate一>onstart一>onresume。如果被回收掉的活動(dòng)一旦又重新被調(diào)用時(shí),會(huì)像一般啟動(dòng)一樣再次調(diào)用活動(dòng)的onCreate方法。 當(dāng)在模擬器上已經(jīng)執(zhí)行過(guò)多個(gè)應(yīng)用程序,只要按下返回鍵,就會(huì)開(kāi)啟最近一次開(kāi)啟過(guò)的活動(dòng)。所以如果要讓再次被創(chuàng)立的活動(dòng)跟原來(lái)開(kāi)啟過(guò)的一樣,則
32、在活動(dòng)之間切換時(shí),就要保存資料:即在每次活動(dòng)運(yùn)行到暫?;蛲nD狀態(tài)時(shí)先保存資料,然后在創(chuàng)立時(shí)將資料讀出來(lái)。 第五章 餅圖賬單的設(shè)計(jì)與實(shí)現(xiàn) 5.1 研究目標(biāo) 了解Android應(yīng)用程序的設(shè)計(jì)和開(kāi)發(fā)過(guò)程; 使用多種組件進(jìn)展Android 平臺(tái)校園資訊軟件的開(kāi)發(fā)。 本軟件是基于Android Studio的開(kāi)發(fā)環(huán)境,在Android平臺(tái)上的餅圖賬單軟件。 5.2 實(shí)現(xiàn)步驟 5.2.1 使用ViewPager+Fragment實(shí)現(xiàn)案例布局 翻開(kāi)開(kāi)發(fā)工具Android Studio,新建工程名為PieChart;并選擇API 為25,選擇布局文件為空;如下列圖所示; 圖五-1新建工程
33、圖五-2選擇API
圖五-3選擇Acitvity布局
修改相應(yīng)的activity布局代碼如下
<“*ml version="1.0" encoding="utf-8"“>
34、id:id="+id/vp_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
35、傳遞給Fragment。 public class MainActivity e*tends ApppatActivity { private ViewPager vpMain; private String mJson = "[{\"date\":\"2016年5月\",\"obj\":[{\"title\":\"外賣(mài)\",\"value\":34}," + "{\"title\":\"娛樂(lè)\",\"value\":21},{\"title\":\"其他\",\"value\":45}]}," + "{\"da
36、te\":\"2016年6月\",\"obj\":[{\"title\":\"外賣(mài)\",\"value\":32}," + "{\"title\":\"娛樂(lè)\",\"value\":22},{\"title\":\"其他\",\"value\":42}]}," + "{\"date\":\"2016年7月\",\"obj\":[{\"title\":\"外賣(mài)\",\"value\":34}," + "{\"title\":\"娛樂(lè)\",\"value\":123},{\"title\":\"其他\",\"value\
37、":24}]}," +
"{\"date\":\"2016年8月\",\"obj\":[{\"title\":\"外賣(mài)\",\"value\":145}," +
"{\"title\":\"娛樂(lè)\",\"value\":123},{\"title\":\"其他\",\"value\":124}]}]";
private ArrayList
38、e(savedInstanceState);
setContentView(R.layout.activity_main);
vpMain = ((ViewPager)findViewById(R.id.vp_main));
initData();
initView();
}
private void initData() {
Gson gson= new Gson();
mData=gson.fromJson(mJson,new TypeToken 39、 40、elected(Entry e, int dataSetInde*, Highlight h) {
float proportion = 360f/mData.getSum();
float angle = 90-mData.obj.get(e.get*Inde*()).value*proportion/2-mData.getSum(e.get*Inde*())*proportion;
mChart.setRotationAngle(angle);
updateDesTe*t(e.get*Inde*());
}
下面是 41、layout布局文件的顯示圖:
圖五-6Layout布局
5.2.5 程序完成
最后在對(duì)各項(xiàng)布局文件以及類(lèi)文件的編寫(xiě)后,得到主應(yīng)用程序的運(yùn)行畫(huà)面如下圖:
圖五-7運(yùn)行結(jié)果
第六章 主要結(jié)論
經(jīng)過(guò)一個(gè)多月的努力,Android平臺(tái)餅圖賬單應(yīng)用終于完成了。由于對(duì)JAVA濃厚的興趣引發(fā)了我對(duì)Android的好奇心,從一開(kāi)場(chǎng)什么都不懂一直摸索完成了這個(gè)軟件。
在這個(gè)過(guò)程中,我學(xué)會(huì)了很多知識(shí),比方Android環(huán)境的搭建、Intent、Activity、Service、ContentProvider、Fragment等,但我學(xué)會(huì)的最重要的一點(diǎn)是,利用現(xiàn)有的資源去解決問(wèn)題,在圖書(shū)館、在網(wǎng)絡(luò)上 42、尋找答案。
雖然,這個(gè)軟件目前運(yùn)行良好,但是我認(rèn)為代碼的強(qiáng)健行還很差,在整個(gè)工程的構(gòu)思方面也缺乏,用戶操作界面還不夠靈活,這些問(wèn)題還需要今后逐一解決。與此同時(shí),這個(gè)軟件還可以進(jìn)一步擴(kuò)展,例如數(shù)據(jù)獲取、“數(shù)據(jù)錄入〞等,使功能更加強(qiáng)大,帶給用戶更好的體驗(yàn)與生活的便捷。
參考文獻(xiàn)
[1] GongLei,,ZhouCong,Development and Research of Mobile Termination Application Basen Android[J].puter And Modernization,2008。
[2] Shane Conde,Android Wirele 43、ss Application Development[M],AddisonWesley,2010
[3] Enck,W,Ongtang M,McDaniel P,Understanding Android Security[J],Security&Priva,IEEE,2009,7(1),P50-57
[4] Sandeep Kumar,Location Based Services using Android[C],Internet Multimedia Servis Architecture and Applications (IMSAA),2009,IEEE Internationa 44、l Conference,P1-5
[5] 昌平,明鈺,Android手機(jī)的輕量級(jí)訪問(wèn)控制[J],人民郵電,2010
[6] 豐富,Android應(yīng)用開(kāi)發(fā)揭秘[M],機(jī)械工業(yè),2010
[7] 余志龍,昱勛,名杰,Android SDK開(kāi)發(fā)例大全[M],人民郵電2010
致
感大家一貫如一的專(zhuān)注和無(wú)私的付出,才使得工程得以完整完畢。在工貿(mào)學(xué)院度過(guò)了三年的緊學(xué)習(xí)時(shí)光,系統(tǒng)地學(xué)習(xí)了移動(dòng)開(kāi)發(fā)的各方面知識(shí),深深的佩服各位專(zhuān)業(yè)教師的學(xué)識(shí),從中我不僅學(xué)習(xí)到編程知識(shí),而且學(xué)到很多做人、做事、做學(xué)問(wèn)的道理,在此表示真摯的意。在論文即將完成之際,我要感我的導(dǎo)師武云飛教師。在論文撰寫(xiě)的整個(gè)過(guò)程中,從論文 45、選題、到撰寫(xiě)開(kāi)題報(bào)告、最后到正文撰寫(xiě),武教師都提出了很多珍貴意見(jiàn)。武教師指出的每一個(gè)問(wèn)題,指導(dǎo)的每一個(gè)思路,都使我有茅塞頓開(kāi)之感。給我感受最深的是武教師嚴(yán)謹(jǐn)治學(xué)的態(tài)度,無(wú)論從格式規(guī)、論文要點(diǎn)、還是文章構(gòu)造,武教師都不厭其煩,給予我及時(shí)的幫助,使我能夠最后順利完成論文寫(xiě)作工作。
教師淵博的專(zhuān)業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng),樸實(shí)無(wú)華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。
我相信,做工程的這段的日子對(duì)大家來(lái)說(shuō)一定是一個(gè)痛苦但美好的回憶?!伴L(zhǎng)風(fēng)破浪會(huì)有時(shí),直掛云帆濟(jì)滄海。〞這是我少年時(shí)最喜歡的詩(shī)句。就用這話作為這篇論文的一個(gè)結(jié)尾,也是一段生活的完畢。希望自己能夠繼續(xù)少年時(shí)的夢(mèng)想,永不放棄。
附錄
在設(shè)置餅圖賬單主界面時(shí)餅圖下方的Te*tView 文本框的寬度應(yīng)該與上方餅圖的直徑相等,可以設(shè)置為餅圖寬度的80%,也可以通過(guò)線性布局制作也可以實(shí)現(xiàn)。
. >
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同法實(shí)務(wù)培訓(xùn)稿課件
- 醫(yī)院信息化和醫(yī)院管理信息化系統(tǒng)-課件
- 青少眼保健教育
- 用友ERP-U8企業(yè)應(yīng)用套件v860銷(xiāo)售員培訓(xùn)
- 普外科各種引流管的護(hù)理PPT課件
- 春七年級(jí)數(shù)學(xué)下冊(cè) 82 整式乘法多項(xiàng)式與多項(xiàng)式相乘課件1 (新版)滬科版
- 結(jié)構(gòu)檢測(cè)室培訓(xùn)教材通用課件
- 天津市寶坻區(qū)新安鎮(zhèn)第一初級(jí)中學(xué)七年級(jí)生物上冊(cè) 第2單元 第1章 第2節(jié)植物細(xì)胞課件 (新版)新人教版
- 人教版小學(xué)二年級(jí)語(yǔ)文上冊(cè)《酸的和甜的》課件
- 要素的需求和供給
- 牡丹江站安全風(fēng)險(xiǎn)點(diǎn)及控制措施(站級(jí))
- 抽屜原理 (3)(精品)
- Why-do-you-like-pandas3.Language-points
- 云南2019中考語(yǔ)文復(fù)習(xí)課件:口語(yǔ)交際與語(yǔ)文綜合運(yùn)用優(yōu)秀課件
- 第六章土攘的保肥性與供肥性