亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android平臺(tái)網(wǎng)絡(luò)相冊(cè)的設(shè)計(jì)與實(shí)現(xiàn)

        2013-08-13 03:55:04李寧寧鄭純軍
        電視技術(shù) 2013年15期
        關(guān)鍵詞:換膚適配器服務(wù)器端

        李寧寧,鄭純軍

        (大連東軟信息學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,遼寧 大連 116023)

        責(zé)任編輯:許 盈

        隨著Android手機(jī)和網(wǎng)絡(luò)的迅速發(fā)展和普及,二者相結(jié)合的應(yīng)用與日俱增。而移動(dòng)終端受自身資源有限的約束,無法滿足終端應(yīng)用高存儲(chǔ)的需求[1],因此手機(jī)往往會(huì)影響圖片的大量存儲(chǔ)工作。為了解決這一矛盾,本文設(shè)計(jì)了基于Android的網(wǎng)絡(luò)相冊(cè)系統(tǒng)。該系統(tǒng)的客戶端為Android手機(jī),用戶可以進(jìn)行拍照、瀏覽圖片,然后將選中的圖片上傳至微博或網(wǎng)絡(luò)服務(wù)器上,從而借助網(wǎng)絡(luò)服務(wù)器的空間分擔(dān)客戶端的存儲(chǔ)壓力,節(jié)省了手機(jī)空間。

        本文介紹了在Android上進(jìn)行網(wǎng)絡(luò)相冊(cè)系統(tǒng)的開發(fā)與設(shè)計(jì),使用Android平臺(tái)推出的SDK和Eclipse開發(fā)環(huán)境實(shí)現(xiàn)了本地相冊(cè)的圖片瀏覽、編輯、上傳,網(wǎng)絡(luò)相冊(cè)的管理、換膚和網(wǎng)絡(luò)設(shè)置等,并可以在模擬器以及真機(jī)上運(yùn)行。

        1 系統(tǒng)體系結(jié)構(gòu)和關(guān)鍵技術(shù)

        Google公司推出的Android智能手機(jī)平臺(tái)系統(tǒng),以其開源、開放和優(yōu)異便捷的開發(fā)架構(gòu),吸引了眾多程序開發(fā)者[2]。本文以網(wǎng)絡(luò)相冊(cè)系統(tǒng)中涉及到的技術(shù)為主線,著重介紹相關(guān)的知識(shí)點(diǎn)并闡述該技術(shù)在本系統(tǒng)中的應(yīng)用。根據(jù)用戶的需求和軟件的特點(diǎn),本系統(tǒng)的功能設(shè)計(jì)與體系結(jié)構(gòu)如圖1所示。

        圖1 網(wǎng)絡(luò)相冊(cè)體系結(jié)構(gòu)

        1.1 ListView

        本文的界面主要是利用GridView和ListView組件進(jìn)行設(shè)計(jì)的。二者的編程過程比較類似,所以本部分僅以ListView為例進(jìn)行簡(jiǎn)單介紹。ListView是Android編程中最重要的組件之一,因?yàn)槠鋽?shù)據(jù)來源靈活并可以實(shí)現(xiàn)自身的樣式定制。ListView中的列表數(shù)據(jù)是通過適配器將其映射到組件中。列表的適配器類型有ArrayAdapter、SimpleAdapter和SimpleCursorAdapter三種,也可以通過繼承BaseAdapter類自己定義適配器。在自定義的適配器類中,編程人員通過實(shí)現(xiàn)getView 方法為其第二個(gè)參數(shù)convertView進(jìn)行賦值,實(shí)現(xiàn)自己定義的顯示效果。本相冊(cè)中,需要在列表中包含刪除按鈕,所以選擇自定義適配器方式:首先定義一XML布局文件,設(shè)計(jì)出ListView中的item樣式;自定義適配器類,并定義內(nèi)部holder類,用來盛放ListView中每一項(xiàng)的內(nèi)容;最后將getView中的convert-View賦值成設(shè)定的內(nèi)容。

        1.2 Intent

        Intent為 Activity,Service和 BroadcastReceiver等組件提供交互能力[3]。在本系統(tǒng)中,有多個(gè)自定義的Activity組件,并多次調(diào)用系統(tǒng)功能界面(例如網(wǎng)絡(luò)設(shè)置、拍照),通過廣播組件實(shí)現(xiàn)了換膚功能等,為此,系統(tǒng)中通過Intent連接不同的組件。系統(tǒng)功能界面的調(diào)用是通過Intent的隱式啟動(dòng),匹配系統(tǒng)功能界面的action實(shí)現(xiàn)調(diào)用。例如拍照功能的啟動(dòng),只需要如下代碼:

        1.3 AndroidManifest.xml文件

        AndroidManifest.xml清單文件是每個(gè)Android項(xiàng)目都必需的,它是整個(gè)Android應(yīng)用的全局描述文件[4]。系統(tǒng)中定義的Activity組件和BroadcastReceiver組件都需要在AndroidManifest.xml中進(jìn)行注冊(cè),并通過action和categry指定主啟動(dòng)界面。另外,由于Android系統(tǒng)運(yùn)行在Linux內(nèi)核上,有嚴(yán)格的安全及權(quán)限機(jī)制。本模塊要使用到網(wǎng)絡(luò)連接和SD卡的訪問,這都需要具有相應(yīng)的權(quán)限,需要在AndroidManifest.xml中通過為 < manifest…/> 元素添加<uses-permission…/>子元素即可為自身聲明權(quán)限,否則無法正常運(yùn)行,且編譯過程中,程序不會(huì)報(bào)錯(cuò),只能通過捕獲異常來發(fā)現(xiàn)這一問題。Android中提供了大量的權(quán)限,這些權(quán)限都位于Manifest.permission類中。

        1.4 圖片存儲(chǔ)

        在本系統(tǒng)中,本地相冊(cè)需要訪問存儲(chǔ)在外部設(shè)備(SD卡)中的所有圖片。圖片信息存儲(chǔ)在android.provider.MediaStore.Images.Thumbnails 數(shù)據(jù)庫中,通過 Cursor可以讀取圖庫里的所有圖片的相關(guān)信息,包括圖片的名稱、類型、大小、時(shí)間、路徑等。本系統(tǒng)主要使用對(duì)該數(shù)據(jù)庫的信息查詢功能,調(diào)用ContentProvider組件的query函數(shù)實(shí)現(xiàn)。

        而對(duì)于網(wǎng)絡(luò)服務(wù)器部分的圖片存儲(chǔ),是根據(jù)當(dāng)前用戶名命名文件夾,然后將所有圖片放置其中。每個(gè)用戶只能管理自己文件夾下的圖片。

        2 系統(tǒng)設(shè)計(jì)

        本系統(tǒng)采用的客戶端/服務(wù)器的架構(gòu)??蛻舳?即手機(jī)端)負(fù)責(zé)拍照、本地圖片管理等功能——集成了手機(jī)上的圖庫和相機(jī)軟件的功能,并增加了換膚、美化等模塊;服務(wù)器端負(fù)責(zé)接收上傳圖片、管理網(wǎng)絡(luò)圖片等。為完成網(wǎng)絡(luò)相冊(cè)各模塊的功能,客戶端建立了Android SDK+Java JDK+E-clipse的開發(fā)環(huán)境,基于Android 2.2版本開發(fā);服務(wù)器端采用MyEclipse+Tomcat+MySQL的組合進(jìn)行開發(fā)。

        2.1 客戶端設(shè)計(jì)

        客戶端采用Android系統(tǒng),它基于Linux平臺(tái),自底向上由4個(gè)層次組成:Linux內(nèi)核層、Android運(yùn)行時(shí)庫和其他庫層、應(yīng)用框架層、應(yīng)用程序?qū)?。本文的網(wǎng)絡(luò)相冊(cè)系統(tǒng)是應(yīng)用程序?qū)拥拈_發(fā)。Android應(yīng)用程序開發(fā)是基于框架和組件的。

        為了在主界面中包含本地相冊(cè)、網(wǎng)絡(luò)相冊(cè)和其他3個(gè)部分的功能,本系統(tǒng)采用的是TabActivity和TabHost組織完成。TabHost是一個(gè)裝載Tab的容器,每個(gè)Tab項(xiàng)可以加載一個(gè)布局,可以通過TabActivity的getTab-Host()方法獲得TabHost對(duì)象,TabHost中提供了添加及修改Tab頁的方法。

        2.1.1 本地相冊(cè)

        本地相冊(cè)首頁采用GridView來完成。GridView組件是網(wǎng)格視圖,其中的每一個(gè)條目通過適配器和該組件進(jìn)行關(guān)聯(lián)。本系統(tǒng)自定義了適配器類型,其中包含一個(gè)ImageView和一個(gè)TextView組件,分別用來顯示文件夾下的圖片和圖片名稱、個(gè)數(shù)。進(jìn)入到選中的文件夾下后,選擇待瀏覽圖片,則以Gallery組件顯示其中的圖片內(nèi)容。Gallery是圖片瀏覽組件,主要實(shí)現(xiàn)橫向顯示圖片列表。為此,需要?jiǎng)?chuàng)建一個(gè)適配器,負(fù)責(zé)獲取圖片資源,并通過重寫getView方法,實(shí)現(xiàn)設(shè)置圖片顯示效果。

        對(duì)于選中的圖片,可以進(jìn)行分享、上傳至網(wǎng)絡(luò)相冊(cè),編輯,刪除,重命名,圖片美化等操作?!胺窒怼惫δ苁菍D片上傳到已注冊(cè)的微博賬號(hào)中進(jìn)行發(fā)布,主要是借助Intent的createChooser函數(shù)選擇相關(guān)的微博客戶端進(jìn)行上傳;“上傳至網(wǎng)絡(luò)相冊(cè)”是將圖片上傳到本系統(tǒng)搭建的網(wǎng)絡(luò)服務(wù)器中;“編輯”功能是借助于Android中自帶的裁剪功能完成的,即調(diào)用“com.android.camera.action.CROP”的Intent,通過傳遞相應(yīng)的參數(shù)來實(shí)現(xiàn);“刪除”和“重命名”功能主要是通過調(diào)用文件的delete和rename-To函數(shù)完成;“圖片美化”是通過設(shè)置畫筆的顏色、粗細(xì)、特效等對(duì)圖片進(jìn)行繪制,在onOptionsItemSelected函數(shù)中判斷單擊的是哪個(gè)菜單,并作出響應(yīng)操作。

        2.1.2 網(wǎng)絡(luò)相冊(cè)

        網(wǎng)絡(luò)相冊(cè)部分,根據(jù)用戶名,管理各自部分的圖片,包括下載圖片、刪除圖片等功能。首先,用戶需要注冊(cè),然后登錄到自己的相冊(cè)中,其中以ListView組件列出了該用戶文件夾下的所有圖片。該ListView的每一項(xiàng)中包含了ImageView,TextView和ImageButton三個(gè)控件,分別用來顯示圖片、圖片名稱和刪除按鈕。View的find-ViewById方法比較耗時(shí),為了提高效率,因此需要考慮只調(diào)用一次,借助于ViewHolder將以上三個(gè)控件進(jìn)行封裝,同時(shí)充分利用!=null的判斷。

        2.1.3 其他

        其他功能主要包括拍照、換膚和網(wǎng)絡(luò)設(shè)置。拍照調(diào)用的是Android系統(tǒng)中的相機(jī)功能;換膚是采用最簡(jiǎn)單的原理:將所有的背景圖片以GalleryFlow的形式進(jìn)行顯示,確定好背景圖片后,利用BroadcastReceiver組件更新所有的背景圖片;網(wǎng)絡(luò)設(shè)置是調(diào)用Android系統(tǒng)中自帶的網(wǎng)絡(luò)設(shè)置功能。

        2.2 網(wǎng)絡(luò)服務(wù)器端設(shè)計(jì)

        網(wǎng)絡(luò)服務(wù)器端的搭建,是用 MyEclipse工具集成Tomcat服務(wù)器開發(fā),并采用MySQL數(shù)據(jù)庫存儲(chǔ)用戶及其圖片信息。服務(wù)器端主要實(shí)現(xiàn)與手機(jī)客戶端的圖片傳輸功能:將客戶端上傳的圖片存儲(chǔ)到服務(wù)器的用戶名文件夾下;根據(jù)手機(jī)當(dāng)前登錄用戶,提供對(duì)應(yīng)的圖片供其瀏覽和下載。根據(jù)MVC的編程思想,本系統(tǒng)雖然沒有用戶界面層,依然將業(yè)務(wù)邏輯層和控制層分開——業(yè)務(wù)邏輯層實(shí)現(xiàn)圖片的刪除、下載等功能;控制層由Servlet編程實(shí)現(xiàn)。

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

        3.1 程序?qū)崿F(xiàn)

        手機(jī)客戶端在Eclipse開發(fā)環(huán)境下,使用Java語言,設(shè)計(jì)和實(shí)現(xiàn)了基于Android平臺(tái)的網(wǎng)絡(luò)相冊(cè)程序,并在真機(jī)和模擬器上分別進(jìn)行了測(cè)試,得到了預(yù)期的效果。采用的平臺(tái)版本不能低于Android 2.2。網(wǎng)絡(luò)服務(wù)器端提供了圖片的存儲(chǔ)空間和信息管理,并保證能和客戶端進(jìn)行通信和圖片傳輸。

        圖2所示為網(wǎng)絡(luò)相冊(cè)在真機(jī)上運(yùn)行時(shí)的主界面,即本地相冊(cè)的圖片縮略圖,列出了所有含有圖片的文件夾,并顯示出圖片個(gè)數(shù)。圖3所示為網(wǎng)絡(luò)相冊(cè)在模擬器上運(yùn)行時(shí)的網(wǎng)絡(luò)相冊(cè)部分列表界面,即從網(wǎng)絡(luò)服務(wù)器上獲取用戶文件夾下所有的圖片,并以自定義的ListView樣式進(jìn)行顯示。圖4所示是換膚功能中,選擇背景圖片的界面效果。

        3.2 優(yōu)化

        基于Android平臺(tái)的網(wǎng)絡(luò)相冊(cè)應(yīng)用程序,如果需要大量的圖片瀏覽,往往會(huì)因?yàn)閮?nèi)存溢出而使程序崩潰。因此該系統(tǒng)對(duì)此進(jìn)行了優(yōu)化處理,GridView和ListView中的圖片均經(jīng)過了壓縮處理,顯示的是壓縮效果圖。圖片不是通過文件的輸入輸出流進(jìn)行讀取的,而是通過ContentProvider的Cursor進(jìn)行遍歷的。

        網(wǎng)絡(luò)圖片的下載,會(huì)由于網(wǎng)速、圖片大小的限制,影響程序的運(yùn)行速度。因此,對(duì)于圖片的下載進(jìn)行了異步處理,每次下載時(shí)創(chuàng)建一個(gè)新的線程,在run函數(shù)中完成圖片下載的過程。

        4 結(jié)語

        本文開發(fā)實(shí)現(xiàn)了基于Android平臺(tái)的網(wǎng)絡(luò)相冊(cè)應(yīng)用程序,完成了包括客戶端和服務(wù)器端功能框架的設(shè)計(jì)開發(fā)和系統(tǒng)部署,可以為手機(jī)用戶提供本地、網(wǎng)絡(luò)相冊(cè)存儲(chǔ)和管理功能,即在保證了系統(tǒng)自帶的圖庫功能的基礎(chǔ)上,主要增加了網(wǎng)絡(luò)存儲(chǔ)功能,并整合了拍照、美化、換膚等功能。驗(yàn)證了該應(yīng)用程序的實(shí)用性和可行性,也為廣大的Android開發(fā)者提供了參考。

        [1]王培海.基于Android的移動(dòng)云存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011,35(15):94-97.

        [2]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.

        [3]王向輝,張國(guó)印,沈潔.Android應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2010.

        [4]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2011.

        [5]黃藝峰,閆巧.基于Android平臺(tái)電子詞典的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2011,31(S2):228-232.

        猜你喜歡
        換膚適配器服務(wù)器端
        口服氨甲環(huán)酸聯(lián)合超分子水楊酸換膚治療黃褐斑的療效及對(duì)血清MDA與E2的影響
        火針聯(lián)合超分子水楊酸治療玫瑰痤瘡的療效觀察
        “刷酸”過度可致“爛臉”
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        適配器模式及其應(yīng)用
        新型水文測(cè)驗(yàn)GPS適配器設(shè)計(jì)與應(yīng)用
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
        在Windows中安裝OpenVPN
        美國(guó)麥格普公司新型M—LOK相機(jī)三腳架適配器
        輕兵器(2015年20期)2015-09-10 07:22:44
        越換越黑『換膚』美白
        愛你(2014年19期)2014-11-14 21:51:58
        91精品国产91综合久久蜜臀| 狠狠色噜噜狠狠狠777米奇小说 | 精品国产亚洲人成在线观看| av有码在线一区二区| 亚洲天堂av福利在线| 国产免费艾彩sm调教视频| 欧美人和黑人牲交网站上线| 波多野结衣国产一区二区三区| 久久人妻AV无码一区二区| 亚洲视频在线观看青青草| 精品一区二区在线观看免费视频| av在线观看一区二区三区| 久久精品国产亚洲av麻豆长发| 一本大道无码人妻精品专区| 中文字幕无码免费久久| 麻豆五月婷婷| 在线观看av片永久免费| av高潮一区二区三区| 国产av无码国产av毛片| 免费无码av片在线观看| 久久精品视频按摩| 日韩精品一二三区乱码| 天天爽夜夜爱| 国产精品va在线播放我和闺蜜| 欧美中文字幕在线| 91精品日本久久久久久牛牛| 亚洲一本二区偷拍精品| 国产精品日韩经典中文字幕| 白丝爆浆18禁一区二区三区| 亚洲av无码av吞精久久| 成激情人妻视频| 六月婷婷亚洲性色av蜜桃| 亚洲中文字幕无码一久久区| 欧美在线播放一区二区| 久久精品国产白丝爆白浆| 五月激情在线视频观看| 国产乱人激情h在线观看| 国产成人无码av在线播放dvd| 亚洲va成无码人在线观看| 亚洲中文字幕久久精品色老板| 又大又长粗又爽又黄少妇视频|