最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

移動(dòng)媒體程序設(shè)計(jì)實(shí)現(xiàn)課程設(shè)計(jì)

2023-01-24 20:10 作者:ChatGPT云炬學(xué)長(zhǎng)  | 我要投稿

1移動(dòng)媒體程序設(shè)計(jì)實(shí)現(xiàn)課程設(shè)計(jì)報(bào)告

課題名稱:體重檔案APP小組

小組成員:xxx xxx xxx

目錄

1概述31.1項(xiàng)目背景31.2系統(tǒng)目標(biāo)32需求分析42.1系統(tǒng)功能分析42.1.1數(shù)據(jù)保存42.1.2圖標(biāo)功能42.1.3診斷功能52.1.4更多功能52.2系統(tǒng)平臺(tái)62.2.1Android開(kāi)發(fā)環(huán)境介紹62.2.2Android開(kāi)發(fā)平臺(tái)搭建63概要設(shè)計(jì)83.1總體設(shè)計(jì)83.1.1系統(tǒng)總體結(jié)構(gòu)83.1.2子系統(tǒng)系統(tǒng)接口93.2數(shù)據(jù)庫(kù)設(shè)計(jì)93.2.1數(shù)據(jù)庫(kù)E-R圖設(shè)計(jì)93.2.2數(shù)據(jù)表設(shè)計(jì)103.3相關(guān)技術(shù)介紹103.3.1Activity ……103.3.2Intent ……113.3.3Service ……113.3.4Layout布局……123.3.5控件介紹……134函數(shù)設(shè)計(jì)154.1函數(shù)列表154.2函數(shù)調(diào)用圖1錯(cuò)誤!未定義書(shū)簽。5系統(tǒng)實(shí)現(xiàn)175.1設(shè)計(jì)過(guò)程175.1.1 “圖表”界面內(nèi)功能的實(shí)現(xiàn)……175.1.2 “數(shù)據(jù)”界面內(nèi)各功能的實(shí)施……185.1.3“診斷”界面內(nèi)各功能的實(shí)現(xiàn)……205.1.4 “更多”界面內(nèi)各功能的實(shí)現(xiàn)……216使用說(shuō)明226.1.1 體重檔案軟件在電腦模擬環(huán)境下測(cè)試226.1.2 體重檔案軟件在Android手機(jī)下測(cè)試247項(xiàng)目總結(jié)268作業(yè)具體分工

摘要:

Window 操作系統(tǒng)的誕生成就了微軟帝國(guó),同時(shí)也造就了 PC 時(shí)代的繁榮, 然而如今,以 Android 和 iPhone 手機(jī)為代表的智能移動(dòng)設(shè)備的發(fā)明與互聯(lián)網(wǎng)云技術(shù)的興起預(yù)示著移動(dòng)互聯(lián)網(wǎng)時(shí)代已經(jīng)來(lái)臨。

在這個(gè)互聯(lián)網(wǎng)繁榮的時(shí)代,有一顆超新星,以它獨(dú)特性能優(yōu)勢(shì)與人性化的 UI 設(shè)計(jì)使它在短短的幾年迅速的占領(lǐng)了智能移動(dòng)設(shè)備的市場(chǎng)份額,它就是 Google 的 Android!這也意味著 Google 在移動(dòng)互聯(lián)網(wǎng)時(shí)代開(kāi)始搶跑并領(lǐng)跑。

Android 是基于 Linux 平臺(tái)完全開(kāi)源的手機(jī)操作系統(tǒng),同時(shí)開(kāi)發(fā)語(yǔ)言為 Java。在本次課程設(shè)計(jì)中我們組選擇了以 Android 為平臺(tái)的手機(jī)體重記錄app來(lái)作為我的課程設(shè)計(jì),選擇體重記錄app不僅可以提升技術(shù),同時(shí)也很實(shí)用,為人們時(shí)刻了解自身的體重和健康帶來(lái)了方便。也有利于提升自己的氣質(zhì),健康生活

關(guān)鍵詞:

移動(dòng)互聯(lián)網(wǎng)時(shí)代 Android 體重記錄app 健康生活

概述

  1. 項(xiàng)目背景

胖是歷來(lái)已久的一種多因素引起的代謝障礙疾病。早在1948年,世界衛(wèi)生組織已將“肥胖”列入疾病名單。隨著全球經(jīng)濟(jì)的快速發(fā)展,移動(dòng)互聯(lián)網(wǎng)的興起、人民生活水平的提高,加上不合理的膳食結(jié)構(gòu)、不良生活方式等出現(xiàn),肥胖已成為公共衛(wèi)生焦點(diǎn)問(wèn)題。隨著人們對(duì)肥胖危害的認(rèn)知度提高,減重的治療方法也在歷久彌新,健康生活,控制體重已日益成為人們所重視的問(wèn)題。與此同時(shí),大眾審美觀念的趨勢(shì)也促使了人們對(duì)自身體重的高度重視。隨著移動(dòng)互聯(lián)網(wǎng)和智能手機(jī)的發(fā)展和不斷進(jìn)步,當(dāng)今市場(chǎng)上已出現(xiàn)各種五花八門的健康記錄APP,幾乎所有人的智能手機(jī)上都會(huì)有一款檢測(cè)身體狀況的APP,這些APP可以很好的幫助人們了解自身身體狀況,及時(shí)做出調(diào)整。

系統(tǒng)目標(biāo)

根據(jù)用戶對(duì)該類軟件的使用要求,我們組制定了如下系統(tǒng)目標(biāo):

  • 操作簡(jiǎn)單、易于掌握、界面簡(jiǎn)潔清爽。

  • 方便對(duì)屏幕進(jìn)行觸摸操作。

  • 要包含對(duì)身體狀況的評(píng)估,并記錄長(zhǎng)時(shí)間內(nèi)的數(shù)據(jù)。

  • App占用內(nèi)存不應(yīng)過(guò)大。

  • 系統(tǒng)運(yùn)行穩(wěn)定,不能和手機(jī)固有的軟件沖突。

  • 保密性好,安全可靠。

需求分析

系統(tǒng)功能分析

該系統(tǒng)具有的功能有:

  • 可以長(zhǎng)時(shí)間保存體重狀況

  • 根據(jù)數(shù)據(jù)顯示出散點(diǎn)圖,直觀反映體重變化情況

  • 可以查找出某一天的數(shù)據(jù)

  • 可以根據(jù)輸入的身高、體重、性別判斷出身體狀況

  • 給出合理飲食建議

  • 介紹一些與身高體重相關(guān)的指標(biāo)

數(shù)據(jù)保存

建立了一個(gè)數(shù)據(jù)庫(kù)用來(lái)記錄長(zhǎng)期的數(shù)據(jù)。如圖:

圖表功能

通過(guò)圖表直觀的反映出體重變化情況。如圖:

診斷功能

可以根據(jù)輸入的身高、體重、性別判斷出身體狀況,如圖:

更多功能

個(gè)人信息的設(shè)置和系統(tǒng)功能的設(shè)置等,如圖:

系統(tǒng)平臺(tái)

Android開(kāi)發(fā)環(huán)境介紹

Android平臺(tái)使用Java編程語(yǔ)言來(lái)開(kāi)發(fā)應(yīng)用程序,而Android提供了對(duì)Java的核心支持??紤]到Java虛擬機(jī)的執(zhí)行效率和占用資源情況,Google重新設(shè)計(jì)了Java的編譯器,命名為Dalvik。Dalvik是經(jīng)過(guò)優(yōu)化的Java編譯器,允許在有限的內(nèi)存中同時(shí)運(yùn)行多個(gè)虛擬機(jī)的實(shí)例,并且每一個(gè)Dalvik應(yīng)用作為一個(gè)獨(dú)立的Linux進(jìn)程執(zhí)行,獨(dú)立的進(jìn)程可以防止在虛擬機(jī)崩潰的時(shí)候所有程序都被關(guān)閉。

項(xiàng)目的開(kāi)發(fā)在Eclipse環(huán)境中進(jìn)行,由于進(jìn)行的是Android應(yīng)用程序的開(kāi)發(fā),

由以上分析可知,Android平臺(tái)的搭建需要Android SDK、Java SDK、和AVD三個(gè)軟件。

Android開(kāi)發(fā)平臺(tái)搭建

①Java JDK的安裝;(選擇適合自己電腦配置的版本)

②下載完成后,開(kāi)始安裝

③配置java的環(huán)境變量

(1)新建變量名為”JAVA_HOME”,變量值為JDK的安裝路徑

(2)編輯(若變量中沒(méi)有則新建)變量名為”PATH”,在原變量名字后加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”

(3)編輯(若變量中沒(méi)有則新建)變量名為”CLASSPATH”,變量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”

④確認(rèn)環(huán)境配置是否正確

⑤Androidstudio的下載,鏈接:tools.android-studio.org。

⑥下載完成后開(kāi)始安裝

概要設(shè)計(jì)

總體設(shè)計(jì)

系統(tǒng)總體結(jié)構(gòu)

在這里說(shuō)明系統(tǒng)的總體結(jié)構(gòu)流程圖如下圖所示。

子系統(tǒng)系統(tǒng)接口

數(shù)據(jù)庫(kù)設(shè)計(jì)

數(shù)據(jù)庫(kù)E-R圖設(shè)計(jì)

數(shù)據(jù)庫(kù)的概念設(shè)計(jì),即利用數(shù)據(jù)模型進(jìn)行概念數(shù)據(jù)庫(kù)的模式設(shè)計(jì)。根據(jù)體重檔案系統(tǒng)的需求,設(shè)計(jì)出以下的實(shí)體-關(guān)系模型(E-R)圖如圖。

性別

體重

身高

生日

用戶

1

計(jì)算

1

身體狀況

BMI

BMR

數(shù)據(jù)表設(shè)計(jì)

數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì),即把概念設(shè)計(jì)得到的概念數(shù)據(jù)庫(kù)模式變?yōu)檫壿嫈?shù)據(jù)模式,它依賴于DBMS。根據(jù)體重檔案系統(tǒng)的需求分析及數(shù)據(jù)庫(kù)的概念設(shè)計(jì),建立數(shù)據(jù)庫(kù)了info_db。

建庫(kù)語(yǔ)句:create database info_db;

用戶信息表(usertbl)

列名數(shù)據(jù)類型是否允許為空說(shuō)明birthdate是出身日期weightfloat是體重heightfloat是身高sexbool否性別

表3.5 身體狀況信息表(healtbl)

列名數(shù)據(jù)類型是否允許為空說(shuō)明BMIfloat否BMI值BMRfloat是BMR值

相關(guān)技術(shù)介紹

Activity

在Android應(yīng)用程序中,一個(gè)活動(dòng)Activity通常就是一個(gè)單獨(dú)的界面。每一個(gè)界面都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類,并且從Activity基類中繼承而來(lái),Activity將會(huì)顯示由空間組成的用戶接口,并對(duì)事件做出響應(yīng)。大多數(shù)的應(yīng)用都是由多個(gè)Activity顯示組成。

簡(jiǎn)單的說(shuō),Activity代表一個(gè)用戶所能看到的界面,主要用于處理應(yīng)用程序的整體性工作,例如,監(jiān)聽(tīng)系統(tǒng)事件如按鍵事件、觸摸屏事件等,為用戶顯示指定的View,啟動(dòng)其他Activity等。所有應(yīng)用的Activity都繼承于android.app.Activity類,該類是Android提供的基層類,其他的Activity繼承該父類后,通過(guò)父類的方法實(shí)現(xiàn)各種功能,這種設(shè)計(jì)在其他領(lǐng)域也較為常見(jiàn)。

3.3.2 Intent

Android基本的設(shè)計(jì)理念是鼓勵(lì)減少組件間的耦合,因此Android提供了Intent,Intent提供了一種通用的消息系統(tǒng),它允許在你的應(yīng)用程序與其他的應(yīng)用程序間傳遞Intent來(lái)執(zhí)行動(dòng)作和產(chǎn)生時(shí)間。使用Intent可以激活A(yù)ndroid應(yīng)用的三個(gè)核心組件:活動(dòng)、服務(wù)和廣播接收器。

Intent可以劃分為顯示意圖和隱式意圖。顯示意圖調(diào)用Intent,SetClass方法明確制定了組件名的Intent為顯示意圖,顯示意圖明確制定了Intent應(yīng)該傳遞給那個(gè)組件,在同一個(gè)應(yīng)用內(nèi)部使用的。隱式意圖沒(méi)有明確指定組件名的Intent為隱式意圖,Android系統(tǒng)會(huì)根據(jù)隱式意圖中設(shè)置的動(dòng)作(action)、類別(category)、數(shù)據(jù)(URI和數(shù)據(jù)類型)找到最合適的組件來(lái)處理這個(gè)意圖。

Intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)和附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的結(jié)構(gòu)。

3.3.3 Service

如果把Activity比喻為前臺(tái)程序,那么Service就是后臺(tái)程序,Service的整個(gè)生命周期都只會(huì)在后臺(tái)執(zhí)行。Service跟 Activity一樣也由Intent調(diào)用,由于Service在后臺(tái)運(yùn)行,所以沒(méi)有界面,用來(lái)處理耗時(shí)比較長(zhǎng),而且Service不是一個(gè)單獨(dú)的進(jìn)程,也不是一個(gè)單獨(dú)的線程。Service有兩種類型:

本地服務(wù)(Local Service):用于應(yīng)用程序內(nèi)部;

遠(yuǎn)程服務(wù)(Remote Sercie):用于android系統(tǒng)內(nèi)部的應(yīng)用程序之間。

前者用于實(shí)現(xiàn)應(yīng)用程序自己的一些耗時(shí)任務(wù),比如查詢升級(jí)信息,并不占用應(yīng)用程序比如Activity所屬線程,而是單開(kāi)線程后臺(tái)執(zhí)行,這樣用戶體驗(yàn)比較好。后者可被其他應(yīng)用程序復(fù)用,例如天氣預(yù)報(bào)服務(wù),其他應(yīng)用程序不需要再寫(xiě)這樣的服務(wù),調(diào)用已有的即可。

Service的生命周期,Service有startService和bindService兩種啟動(dòng)Service方法,每種方法Service的生命周期是不一樣的。

通過(guò)startService()——Service會(huì)經(jīng)歷 onCreate –> onStartCommand(),stopService的時(shí)候直接onDestroy,如果是調(diào)用者直接退出而沒(méi)有調(diào)用stopService的話,Service會(huì)一直在后臺(tái)運(yùn)行,下次調(diào)用者再起來(lái)仍然可以stopService;

通過(guò)bindService()——Service只會(huì)運(yùn)行onCreate()–>onBind() 這個(gè)時(shí)候調(diào)用者和Service綁定在一起 unbindService的時(shí)候onUnbind() –> onDestroyed(),調(diào)用者退出了,Srevice就會(huì)調(diào)用onUnbind() –> onDestroyed()。在這里需要注意的是Service的onCreate的方法只會(huì)被調(diào)用一次,就是你無(wú)論多少次的startService又 bindService,Service只被創(chuàng)建一次。如果先是bind了,那么start的時(shí)候就直接運(yùn)行Service的onStart方法,如果先是start,那么bind的時(shí)候就直接運(yùn)行onBind方法。如果你先bind上了,就stop不掉了,只能先UnbindService, 再StopService,所以是先start還是先bind行為是有區(qū)別的。

3.3.4 Layout布局

布局方式有很多種,比如線性布局(Linear Layout)、相對(duì)布局(Relative Layout)、表格布局(Table Layout)、網(wǎng)格視圖(Grid View)、標(biāo)簽布局(Tab Layout)、列表視圖(List View)和絕對(duì)布局(Absolute Layout)。本文設(shè)計(jì)主要采用相對(duì)布局(Relative Layout)、線性布局(Linear Layout),所以就相對(duì)布局和線性布局我們來(lái)做簡(jiǎn)單地介紹。

相對(duì)布局 Relative:里面可以放多個(gè)控件,允許子元素指定它們相對(duì)于父元素或其他元素的位置(通過(guò)ID指定)。因此你可以按正確的順序?qū)R兩個(gè)元素,或者讓一個(gè)視圖在另外一個(gè)下面,居于屏幕中間,左邊的中間,等等。元素通過(guò)給定順序來(lái)繪制,因此如果第一個(gè)元素在屏幕中間,其他以它對(duì)齊的元素都會(huì)對(duì)齊到屏幕中間。同樣,因?yàn)檫@個(gè)順序,如果使用XML來(lái)指定這個(gè)布局,你將引用的元素(為了定位其它視圖對(duì)象)必須被列在XML文件中,在你通過(guò)引用ID從其他視圖中引用它之前。其中一些特性直接由元素支持,另外一些由它的LayoutParams成員變量支持(為所有這個(gè)屏幕中的元素子類化RelativeLayout,因?yàn)樗性囟际荝elativeLayout父對(duì)象的子元素)。已定義的相對(duì)布局RelativeLayout參數(shù)是:width,height,below,alignTop,toLeft以及

padding[Bottom|Left|Right|Top]和margin[Bottom|Left|Right|Top]。注意其中一些參數(shù)明確是相對(duì)于其他元素的布局位置,所以它們的數(shù)值必須是你的相對(duì)位置元素的ID。

線性布局 LinearLayout:線性布局是所用布局中最常用的方式之一,RadioGroup, TabWidget,TableLayout,TableRow,ZoomControls類的父類。LinearLayout可以讓它的子元素垂直或水平的方式排成一行(不設(shè)置方向的時(shí)候默認(rèn)按照垂直方向排列)。LinearLayout以你為它設(shè)置的垂直或水平的屬性值,來(lái)排列所有的子元素。所有的子元素都被堆放在其它元素之后,因此一個(gè)垂直列表的每一行只會(huì)有一個(gè)元素,而不管他們有多寬,而一個(gè)水平列表將會(huì)只有一個(gè)行高(高度為最高子元素的高度加上邊框高度)。LinearLayout保持子元素之間的間隔以及互相對(duì)齊(相對(duì)一個(gè)元素的右對(duì)齊、中間對(duì)齊或者左對(duì)齊)。

LinearLayout還支持為單獨(dú)的子元素指定weight 。好處就是允許子元素可以填充屏幕上的剩余空間。這也避免了在一個(gè)大屏幕中,一串小對(duì)象擠成一堆的情況,而是允許他們放大填充空白。子元素指定一個(gè)weight 值,剩余的空間就會(huì)按這些子元素指定的weight比例分配給這些子元素。默認(rèn)的weight值為0。例如,如果有三個(gè)文本框,其中兩個(gè)指定了weight值為1,那么,這兩個(gè)文本框?qū)⒌缺壤胤糯螅⑻顫M剩余的空間,而第三個(gè)文本框不會(huì)放大。

  1. 控件介紹

1、TextView——文本控件,可以用它來(lái)顯示文字,就像一個(gè)標(biāo)簽一樣,對(duì)TextView是怎么設(shè)置顯示的文本,怎樣設(shè)置字體的大小,字體的顏色,字體的樣式。TextView包含以下子類:Button, CheckedTextView,Chronometer,DigitalClock,EditText。

  • android:id——控件的標(biāo)識(shí)符

  • android:layout_width——設(shè)置控件的寬度

  • android:layout_height——設(shè)置控件的高度

  • android:layout_marginTop——設(shè)置文本的上外邊距

  • android:textSize——設(shè)置文本文字的的大小

  • android:paddingLeft——設(shè)置元素左內(nèi)邊距

2、Button——按鈕控件,在button內(nèi)部可以放置內(nèi)容,比如文本或圖像。<button>與</button>標(biāo)簽之間的所有內(nèi)容都是按鈕的內(nèi)容,其中包括任何可接受的正文內(nèi)容,比如文本或或多媒體。例如,我們可以在按鈕中包括了一個(gè)圖像和相關(guān)的文本,用它們?cè)诎粹o中創(chuàng)建一個(gè)吸引人的標(biāo)記圖像。不過(guò)button禁止使用的元素是圖像映射,因?yàn)樗鼘?duì)鼠標(biāo)和鍵盤敏感的動(dòng)作會(huì)干擾表單按鈕的行為。下面是Button的部分屬性:

  • android:id——控件的標(biāo)識(shí)符

  • android:layout_width——設(shè)置按鈕的寬度

  • android:layout_height——設(shè)置按鈕的高度

  • android:textSize——設(shè)置按鈕里文字的大小

  • android:layout_marginTop——設(shè)置按鈕的上外邊距

  • android:text——設(shè)置按鈕中的文字

  • android:visibility——設(shè)置按鈕里的元素是否可見(jiàn)

3、EditText——文本編輯框,TextView的直接子類,所以EditText會(huì)繼成父類TextView的一些方法。在布局中配置EditText也需同時(shí)配置一個(gè)Button,這樣可以在代碼中監(jiān)聽(tīng)Button的事件,以便獲取當(dāng)前在EditView中輸入的內(nèi)容并且顯示出來(lái)。在EditView可以限制輸入的字符串類型。下面是EditText的部分屬性:

  • android:id——控件的標(biāo)識(shí)符

  • android:layout_width——設(shè)置輸入框的寬度

  • android:layout_height——設(shè)置輸入框的高度

  • android:layout_weight——設(shè)置輸入框占父控件的比例

  • android:inputType——設(shè)置輸入框內(nèi)的字符串類型

  • android:hint——設(shè)置在輸入框輸入內(nèi)容前默認(rèn)的文字

4、ImageView——標(biāo)簽可以顯示任意圖像,例如圖標(biāo),圖片等。ImageView類可以加載各種來(lái)源的圖片,需要計(jì)算圖像的尺寸,以便它可以在其他布局中使用,并提供例如縮放和著色等各種顯示選項(xiàng),在本文用來(lái)顯示城市圖片。下面是ImageView的部分屬性:

  • android:id——設(shè)置圖片的標(biāo)識(shí)符

  • android:layout_width——設(shè)置圖片的寬度

  • android:layout_height——設(shè)置圖片的高度

  • android:visibility——設(shè)置圖片是否可見(jiàn)性

函數(shù)設(shè)計(jì)

函數(shù)列表

返回類型方 法簡(jiǎn) 述booleanclipRect (int left,int top,int,right,int,bottom)裁剪一個(gè)矩形區(qū)域SetStorkeWidtg(float width)設(shè)置筆刷的寬度onKeyDown(int keyCode, KeyEvent event)點(diǎn)擊后觸發(fā)事件intgetAudioSessionId()返回體重的會(huì)話IDgetCurrentPosition()取得當(dāng)前顯示的位置點(diǎn)getDuration()取得文件的長(zhǎng)度static WeightMakercreate(Context context, int resid)從指定的源id中創(chuàng)建一個(gè)WeightMaker對(duì)象create(Context context, Uri uri)從指定的Uri中創(chuàng)建一個(gè)WeightMaker對(duì)象create(Context context, Uri uri, SurfaceHolder holder)從指定的Uri中創(chuàng)建一個(gè)WeightMaker對(duì)象,并在Surfaceview中顯示voidDrawPoint(float[]pts,int offset,int count,Paint paint)繪制多個(gè)點(diǎn)addSettingItem(int layout_id, String title)添加下拉選項(xiàng)onDateSelected()搜索前異步準(zhǔn)備release()釋放此WeightMaker對(duì)象占用的資源reset()重置WeightMaker到未初始化狀態(tài)seekTo(int msec)尋找特定日期的體重start()開(kāi)始計(jì)算stop()停止計(jì)算

4.2函數(shù)調(diào)用圖

系統(tǒng)實(shí)現(xiàn)

設(shè)計(jì)開(kāi)發(fā)過(guò)程

“圖表”界面內(nèi)功能的實(shí)現(xiàn)

頁(yè)面的設(shè)計(jì)

整體采用線性布局(LinearLayout ),并且有用作圖的的類函數(shù)來(lái)實(shí)現(xiàn)曲線的繪制。

主要代碼具體如下:

public static interface OnChartModeChangeListener {

public void onChartModeChanged(int chartmode);

}

public static void initialize(Context context) {

mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);

}

public static void setOnChartModeChangeListener(OnChartModeChangeListener listener) {

mChartModeChangeListener = listener;

}

public static boolean isFirstStart() {

return mSharedPreferences.getBoolean(CONFIG_FIRST_START,true);

}

“數(shù)據(jù)”界面內(nèi)各功能的實(shí)施

該界面主要功能為數(shù)據(jù)的添加、刪減、和查找。

主要的代碼實(shí)現(xiàn)如下:

//查找

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_data);

mDataSummary = (LinearLayout)findViewById(R.id.DataSummary);

mCondition = getIntent().getStringExtra(“Condition”);

if (mCondition != null && !””.equals(mCondition)) {

getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));

getActionBar().setTitle(getString(R.string.activity_title_search_result));

mDataSummary.setVisibility(View.GONE);

}

mTextContinuousDays = (TextView)findViewById(R.id.TextContinuousDays);

mTextReduceWeek = (TextView)findViewById(R.id.TextReduceWeek);

mTextReduceMonth = (TextView)findViewById(R.id.TextReduceMonth);

updateDataSummary();

mWeightListView = (ListView)findViewById(R.id.WeightDataListView);

mWeightDataAdapter = new WeightDataAdapter(this,mCondition);

mWeightListView.setAdapter(mWeightDataAdapter);

registerForContextMenu(mWeightListView);

OnItemLongClickListener longListener = new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {

mSelectedPosition = position;

mWeightListView.showContextMenu();

return true;

}

};

mWeightListView.setOnItemLongClickListener(longListener);

}

添加和刪除:protected void?updateDataSummary() {
mTextContinuousDays.setText(WeightDBHelper.getContinuousDays()+“天”);
Double reduced = 0.0;
reduced = WeightDBHelper.getWeightReduceThisWeek();
if?(reduced > 0) {
mTextReduceWeek.setText(“+”?+?new?DecimalFormat(“0.00”).format(reduced) +?” kg”);
}
else?{
mTextReduceWeek.setText(reduced +?” kg”);
}
reduced = WeightDBHelper.getWeightReduceThisMonth();
if?(reduced > 0) {
mTextReduceMonth.setText(“+”?+?new?DecimalFormat(“0.00”).format(reduced) +?” kg”);
}
else?{
mTextReduceMonth.setText(reduced +?” kg”);
}
}

“診斷”界面內(nèi)各功能的實(shí)現(xiàn)

public void onClick(View v) {

Intent intent = null;

switch (v.getId()) {

case R.id.MoreAccount:

intent = new Intent(this,PersonalActivity.class);

startActivity(intent);

break;

case R.id.MoreBackupOrRestore:

break;

case R.id.MoreSetting:

intent = new Intent(this,SettingActivity.class);

startActivity(intent);

break;

case R.id.MoreWhatBMI:

intent = new Intent(this,WhatActivity.class);

intent.putExtra(“What”, “BMI”);

startActivity(intent);

break;

case R.id.MoreWhatBMR:

intent = new Intent(this,WhatActivity.class);

intent.putExtra(“What”, “BMR”);

startActivity(intent);

break;

case R.id.MoreAboutUs:

intent = new Intent(this,AboutActivity.class);

startActivity(intent);

break;

default:

return;

}

}

“更多”界面內(nèi)各功能的實(shí)現(xiàn)

該界面主要實(shí)現(xiàn)各個(gè)頁(yè)面間的跳轉(zhuǎn),比較簡(jiǎn)單,就不附源代碼了。

測(cè)試說(shuō)明

體重檔案軟件在電腦模擬環(huán)境下測(cè)試

軟件編寫(xiě)完成,對(duì)其進(jìn)行測(cè)試,首先將手機(jī)體重檔案系統(tǒng)在電腦模擬環(huán)境下測(cè)試的方案,以下是對(duì)系統(tǒng)進(jìn)行測(cè)試,在Android 的菜單欄中用鼠標(biāo)點(diǎn)擊運(yùn)行按鈕,在彈出的窗口中選擇”Run As”→”Android Application”安裝該應(yīng)用程序到Android 模擬器并啟動(dòng)它,如圖4所示:

等待模擬器啟動(dòng)完成軟件的安裝,然后單擊圖表,就會(huì)顯示近期的體重變化情況,電腦模擬測(cè)試結(jié)果如圖所示:

通過(guò)數(shù)據(jù)按鈕可添加當(dāng)下的體重,和查詢歷史體重,如圖所示


通過(guò)診斷按鈕可查詢身體的狀況,如圖所示

在更多的界面里可以設(shè)置個(gè)人信息、系統(tǒng)設(shè)置等,如圖所示:




體重檔案軟件在Android手機(jī)下測(cè)試




該測(cè)試說(shuō)明開(kāi)發(fā)的體重檔案軟件可以獨(dú)立在Android設(shè)備運(yùn)行,滿足設(shè)計(jì)要求的獨(dú)立性,通過(guò)觀察其所占內(nèi)存,可以發(fā)現(xiàn),體重檔案軟件十分小,獲取的數(shù)據(jù)的準(zhǔn)確性很高,實(shí)時(shí)性;滿足設(shè)計(jì)要求。

項(xiàng)目總結(jié)

經(jīng)過(guò)這幾周的代碼及開(kāi)發(fā)文檔書(shū)寫(xiě),課程設(shè)計(jì)也隨之進(jìn)入收尾階段,體重檔案系統(tǒng)的基本功能也逐個(gè)完成了。

在這次課程設(shè)計(jì)中,經(jīng)過(guò)與隊(duì)友的協(xié)同配合,通過(guò)學(xué)習(xí)與思考并實(shí)踐,加強(qiáng)了我們的團(tuán)隊(duì)協(xié)作意識(shí),并且提高了我們的學(xué)習(xí)水平,使我們對(duì)Google Android開(kāi)發(fā)及Java等相關(guān)的技術(shù)初步了解,同時(shí),由于我們做的是移動(dòng)軟件的開(kāi)發(fā),從起初資料的查詢,讓我們?cè)谟邢薜臅r(shí)間內(nèi)豐富了對(duì)Android開(kāi)發(fā)的認(rèn)知,積累了理論上的知識(shí)。需求分析,可行性分析,再到后來(lái)的Java配置環(huán)境,書(shū)寫(xiě)代碼及其調(diào)試,讓我們作為用戶對(duì)該類系統(tǒng)的需求和軟件運(yùn)行的環(huán)境有了一定了解。將之前學(xué)過(guò)的數(shù)據(jù)庫(kù)知識(shí)跟Java技術(shù)結(jié)合在一起,理論聯(lián)系實(shí)際,在實(shí)踐中鍛煉了我們分析處理問(wèn)題的能力并激發(fā)了這方面的興趣。

這次課程設(shè)計(jì)的過(guò)程中,還讓我們鞏固了并加深了對(duì)軟件工程這門學(xué)科的認(rèn)識(shí),尤其讓我在使用工程流程的各個(gè)階段有了進(jìn)一步的了解,并相對(duì)獨(dú)立地完成各個(gè)階段的任務(wù)。通過(guò)這次設(shè)計(jì)還讓我們明白了需求分析和總體設(shè)計(jì)是系統(tǒng)真正開(kāi)發(fā)的關(guān)鍵,它規(guī)劃出系統(tǒng)的大致模塊和業(yè)務(wù)接口,流程轉(zhuǎn)換以及模塊之間的關(guān)系。如果總體設(shè)計(jì)規(guī)劃不科學(xué),將會(huì)導(dǎo)致之后的詳細(xì)設(shè)計(jì)工作出現(xiàn)冗余,目標(biāo)不明確甚至失去方向。雖然在開(kāi)發(fā)過(guò)程中受水平和時(shí)間所限,在設(shè)計(jì)中還有些欠缺或考慮不周全的地方,但這次課程設(shè)計(jì)的經(jīng)歷將對(duì)我們今后的學(xué)習(xí)和工作都將產(chǎn)生重大意義。

作業(yè)分工

xx:代碼+world+ppt制作

xxx:app設(shè)計(jì)+ppt制作

2體重檔案App設(shè)計(jì)

  1. 用戶研究

  2. 各年齡段都有用戶

  3. 體重高于正常標(biāo)準(zhǔn),并且關(guān)注自身情況想要有所改變的人群

B.體重較為正常,但是想要保持體形的人群;

C.關(guān)心自身身體情況的。

(二)主要用戶定位

用戶目標(biāo):希望能再APP上清楚的了解自己身體近期的體重變化,并能通過(guò)體重曲線圖更直觀地反映,清楚自己所需要達(dá)到的正常值。

體驗(yàn)?zāi)繕?biāo):使用戶能制定更合理適合自身的運(yùn)動(dòng)計(jì)劃,知道自身體重的近期變化情況,逐步增強(qiáng)自信。

最終目標(biāo):督促體重超標(biāo)人群完成健身目標(biāo),增強(qiáng)信心,身體更加健康。

人生目標(biāo):表達(dá)了對(duì)美好生活的憧憬與向往

  1. 概要設(shè)計(jì)

  2. 需求定義

  3. 前景綜述
    使用戶對(duì)自身體重有即時(shí)的了解,更加清楚自己身體的健康狀況。采取相應(yīng)的措施改善現(xiàn)狀。
    (2)人物角色的期望
    對(duì)自身體重有更多的了解;
    能隨時(shí)直觀、方便地,了解自身體重變化情況;
    能了解當(dāng)前體重與正常值的差距;
    登錄、登記時(shí)間,體重信息過(guò)程簡(jiǎn)單,管理方便。

  4. 情境場(chǎng)景劇本
    小K是個(gè)體重超標(biāo)的孩子,小的時(shí)候不以為意,可隨著年齡的增長(zhǎng),漸漸感受到了同學(xué)們的異樣眼觀,這讓他的自尊心受到了傷害。所以他給自己定下了一系列的減肥計(jì)劃。
    一個(gè)陽(yáng)光明媚的早晨,小K像往常一樣來(lái)到了操場(chǎng)上開(kāi)始自己的晨練。他打開(kāi)了手機(jī)上的體重檔案,設(shè)置好今天的日期,以及當(dāng)前體重。然后開(kāi)始了新的一天的鍛煉。晨練結(jié)束后看了一眼體重檔案上顯示的步數(shù)以及消耗的卡路里,滿意地點(diǎn)了點(diǎn)頭,去食堂簡(jiǎn)單地吃過(guò)早飯準(zhǔn)備上課。
    下午下課之后,小K和朋友約好一起去健身房健身。一套組合下來(lái)讓他大汗淋漓,洗過(guò)澡之后習(xí)慣性地去稱量一下體重,身體雖然有些虛弱感,但臉上漸漸浮現(xiàn)出了滿意的笑容,沒(méi)錯(cuò),自己體重今天又降低了一些,距離自己目標(biāo)的正常值又近了一步。并將當(dāng)前體重登記到體重檔案,看了一眼自己近期的體重變化曲線,他更加清楚自己是應(yīng)該加強(qiáng)鍛煉量還是適當(dāng)休息調(diào)理一下,畢竟物極必反太大的運(yùn)動(dòng)量也不一定是好事??粗饾u體重逐漸降低的曲線,信心也在逐步提高,他堅(jiān)信自己總有一天能變成正常身材,并且身體越來(lái)越健康。

  5. 確定需求

在主頁(yè)注冊(cè)和登陸用戶賬號(hào);

在“圖表欄”更直觀反映自身體重的近期變化;

在“診斷”知道自身與正常值得差距;

在“更多”了解更多健康小常識(shí)

2.框架定義

(1)輸入法:鍵盤、觸屏點(diǎn)擊。

(2)數(shù)據(jù)與功能元素:界面中主要展現(xiàn)給用戶的數(shù)據(jù)和功能。

A.主要數(shù)據(jù)元素:

主頁(yè)——用戶名,密碼;

圖表——體重曲線:x軸日期,y軸體重;

數(shù)據(jù)——日期,體重;

診斷——當(dāng)前身體指標(biāo),診斷結(jié)果;

更多——健康小常識(shí);

B.主要功能元素:

對(duì)數(shù)據(jù)元素的操作及其在界面上的表達(dá)(比如需用控件、工具、位置等)。

滿足主頁(yè)需求的主要功能元素如下

在“用戶”輸入框中輸入用戶名;

在“密碼”輸入框中輸入密碼;

通過(guò)點(diǎn)擊“登錄”按鈕進(jìn)行登錄。

滿足體重檔案需求的主要功能元素如下:

從首頁(yè)點(diǎn)擊數(shù)據(jù)進(jìn)入數(shù)據(jù)列表界面,;

從數(shù)據(jù)列表界面點(diǎn)擊某一類別數(shù)據(jù)進(jìn)行對(duì)時(shí)間以及體重的登記;

(3)決定功能組及層次(順序)

把數(shù)據(jù)和功能元素按需求之間的關(guān)聯(lián)程度、相互之間的比較關(guān)系等,在屏幕(頁(yè)面)中利用網(wǎng)絡(luò)、標(biāo)簽頁(yè)、組框等方式進(jìn)行分組、聚合并組織好功能組之間的層次關(guān)系。

(4)勾畫(huà)大致的交互框架

根據(jù)需求、數(shù)據(jù)信息元素與功能元素歸納結(jié)果以及功能組與層次劃分,勾畫(huà)大致的交互框架草圖。

  1. 構(gòu)建關(guān)鍵線路場(chǎng)景劇本

第二天,小K依舊來(lái)到操場(chǎng)上進(jìn)行晨練,他在“更多”里了解到了一些新的健康小常識(shí),于是改進(jìn)了鍛煉方式,同時(shí)飲食方面也更加注重合理搭配了,這對(duì)他起到了事半功倍的效果??匆谎邸皥D表”里他近期體重變化情況,發(fā)現(xiàn)最近體重變化過(guò)快,他并不急于求成,知道這樣下去會(huì)對(duì)身體造成負(fù)擔(dān),這并不是件好事,于是決定先穩(wěn)固下現(xiàn)階段身體情況再開(kāi)始下個(gè)階段的鍛煉。在“診斷”里輸入自己現(xiàn)在的體重,并與正常值作對(duì)比,一系列計(jì)劃也漸漸在他腦海中成型,深深地吸了一口氣目光堅(jiān)定地看了一眼操場(chǎng)上還在晨練的人們,轉(zhuǎn)身離開(kāi)了。

3答辯PPT


源碼鏈接:https://yunjunet.cn/876902.html

移動(dòng)媒體程序設(shè)計(jì)實(shí)現(xiàn)課程設(shè)計(jì)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
贡嘎县| 任丘市| 临漳县| 宜兴市| 汉阴县| 安泽县| 越西县| 辽宁省| 广灵县| 西丰县| 叙永县| 潮安县| 黄石市| 邢台县| 姜堰市| 山西省| 景德镇市| 乐都县| 泗阳县| 靖州| 汉源县| 湘潭市| 天等县| 茌平县| 乌拉特中旗| 南乐县| 尉犁县| 海晏县| 长子县| 乐昌市| 金沙县| 大关县| 中超| 宣化县| 乌拉特前旗| 水富县| 治多县| 湖州市| 东海县| 如东县| 海伦市|