999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android平臺網絡相冊的設計與實現

2013-08-13 03:55:04李寧寧鄭純軍
電視技術 2013年15期
關鍵詞:功能系統

李寧寧,鄭純軍

(大連東軟信息學院計算機科學與技術系,遼寧 大連 116023)

責任編輯:許 盈

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

本文介紹了在Android上進行網絡相冊系統的開發與設計,使用Android平臺推出的SDK和Eclipse開發環境實現了本地相冊的圖片瀏覽、編輯、上傳,網絡相冊的管理、換膚和網絡設置等,并可以在模擬器以及真機上運行。

1 系統體系結構和關鍵技術

Google公司推出的Android智能手機平臺系統,以其開源、開放和優異便捷的開發架構,吸引了眾多程序開發者[2]。本文以網絡相冊系統中涉及到的技術為主線,著重介紹相關的知識點并闡述該技術在本系統中的應用。根據用戶的需求和軟件的特點,本系統的功能設計與體系結構如圖1所示。

圖1 網絡相冊體系結構

1.1 ListView

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

1.2 Intent

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

1.3 AndroidManifest.xml文件

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

1.4 圖片存儲

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

而對于網絡服務器部分的圖片存儲,是根據當前用戶名命名文件夾,然后將所有圖片放置其中。每個用戶只能管理自己文件夾下的圖片。

2 系統設計

本系統采用的客戶端/服務器的架構??蛻舳?即手機端)負責拍照、本地圖片管理等功能——集成了手機上的圖庫和相機軟件的功能,并增加了換膚、美化等模塊;服務器端負責接收上傳圖片、管理網絡圖片等。為完成網絡相冊各模塊的功能,客戶端建立了Android SDK+Java JDK+E-clipse的開發環境,基于Android 2.2版本開發;服務器端采用MyEclipse+Tomcat+MySQL的組合進行開發。

2.1 客戶端設計

客戶端采用Android系統,它基于Linux平臺,自底向上由4個層次組成:Linux內核層、Android運行時庫和其他庫層、應用框架層、應用程序層。本文的網絡相冊系統是應用程序層的開發。Android應用程序開發是基于框架和組件的。

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

2.1.1 本地相冊

本地相冊首頁采用GridView來完成。GridView組件是網格視圖,其中的每一個條目通過適配器和該組件進行關聯。本系統自定義了適配器類型,其中包含一個ImageView和一個TextView組件,分別用來顯示文件夾下的圖片和圖片名稱、個數。進入到選中的文件夾下后,選擇待瀏覽圖片,則以Gallery組件顯示其中的圖片內容。Gallery是圖片瀏覽組件,主要實現橫向顯示圖片列表。為此,需要創建一個適配器,負責獲取圖片資源,并通過重寫getView方法,實現設置圖片顯示效果。

對于選中的圖片,可以進行分享、上傳至網絡相冊,編輯,刪除,重命名,圖片美化等操作。“分享”功能是將圖片上傳到已注冊的微博賬號中進行發布,主要是借助Intent的createChooser函數選擇相關的微博客戶端進行上傳;“上傳至網絡相冊”是將圖片上傳到本系統搭建的網絡服務器中;“編輯”功能是借助于Android中自帶的裁剪功能完成的,即調用“com.android.camera.action.CROP”的Intent,通過傳遞相應的參數來實現;“刪除”和“重命名”功能主要是通過調用文件的delete和rename-To函數完成;“圖片美化”是通過設置畫筆的顏色、粗細、特效等對圖片進行繪制,在onOptionsItemSelected函數中判斷單擊的是哪個菜單,并作出響應操作。

2.1.2 網絡相冊

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

2.1.3 其他

其他功能主要包括拍照、換膚和網絡設置。拍照調用的是Android系統中的相機功能;換膚是采用最簡單的原理:將所有的背景圖片以GalleryFlow的形式進行顯示,確定好背景圖片后,利用BroadcastReceiver組件更新所有的背景圖片;網絡設置是調用Android系統中自帶的網絡設置功能。

2.2 網絡服務器端設計

網絡服務器端的搭建,是用 MyEclipse工具集成Tomcat服務器開發,并采用MySQL數據庫存儲用戶及其圖片信息。服務器端主要實現與手機客戶端的圖片傳輸功能:將客戶端上傳的圖片存儲到服務器的用戶名文件夾下;根據手機當前登錄用戶,提供對應的圖片供其瀏覽和下載。根據MVC的編程思想,本系統雖然沒有用戶界面層,依然將業務邏輯層和控制層分開——業務邏輯層實現圖片的刪除、下載等功能;控制層由Servlet編程實現。

3 系統實現

3.1 程序實現

手機客戶端在Eclipse開發環境下,使用Java語言,設計和實現了基于Android平臺的網絡相冊程序,并在真機和模擬器上分別進行了測試,得到了預期的效果。采用的平臺版本不能低于Android 2.2。網絡服務器端提供了圖片的存儲空間和信息管理,并保證能和客戶端進行通信和圖片傳輸。

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

3.2 優化

基于Android平臺的網絡相冊應用程序,如果需要大量的圖片瀏覽,往往會因為內存溢出而使程序崩潰。因此該系統對此進行了優化處理,GridView和ListView中的圖片均經過了壓縮處理,顯示的是壓縮效果圖。圖片不是通過文件的輸入輸出流進行讀取的,而是通過ContentProvider的Cursor進行遍歷的。

網絡圖片的下載,會由于網速、圖片大小的限制,影響程序的運行速度。因此,對于圖片的下載進行了異步處理,每次下載時創建一個新的線程,在run函數中完成圖片下載的過程。

4 結語

本文開發實現了基于Android平臺的網絡相冊應用程序,完成了包括客戶端和服務器端功能框架的設計開發和系統部署,可以為手機用戶提供本地、網絡相冊存儲和管理功能,即在保證了系統自帶的圖庫功能的基礎上,主要增加了網絡存儲功能,并整合了拍照、美化、換膚等功能。驗證了該應用程序的實用性和可行性,也為廣大的Android開發者提供了參考。

[1]王培海.基于Android的移動云存儲系統設計與實現[J].電視技術,2011,35(15):94-97.

[2]楊豐盛.Android應用開發揭秘[M].北京:機械工業出版社,2010.

[3]王向輝,張國印,沈潔.Android應用程序開發[M].北京:清華大學出版社,2010.

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

[5]黃藝峰,閆巧.基于Android平臺電子詞典的設計與實現[J].計算機應用,2011,31(S2):228-232.

猜你喜歡
功能系統
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
主站蜘蛛池模板: 国产剧情无码视频在线观看| 欧美精品1区| 亚洲精品无码抽插日韩| 欧美日韩精品一区二区视频| 亚洲AV无码一区二区三区牲色| 女同久久精品国产99国| 亚洲成人精品在线| 亚洲六月丁香六月婷婷蜜芽| 欧美成人二区| www.91中文字幕| 澳门av无码| 青青青伊人色综合久久| 国产激情无码一区二区三区免费| 亚洲人成网站在线观看播放不卡| 亚洲系列无码专区偷窥无码| 国产成人综合日韩精品无码不卡 | 免费看一级毛片波多结衣| 黑人巨大精品欧美一区二区区| 亚洲色图欧美视频| 天天干天天色综合网| 亚洲精品大秀视频| 亚洲一道AV无码午夜福利| 久久久久人妻精品一区三寸蜜桃| 天堂成人av| 久久久久人妻精品一区三寸蜜桃| 毛片在线区| 亚洲天堂福利视频| 成年人国产视频| 四虎永久免费地址| 五月婷婷综合网| 久久99国产精品成人欧美| 99精品视频在线观看免费播放| 青草免费在线观看| 国产亚洲视频免费播放| 日韩无码黄色网站| 国产精品自在线拍国产电影| 色偷偷男人的天堂亚洲av| 亚洲国产一区在线观看| 欧美在线网| 亚洲成人在线免费观看| 成人午夜在线播放| 国产簧片免费在线播放| 97精品久久久大香线焦| 国产精品林美惠子在线观看| 无码 在线 在线| 日本高清免费不卡视频| 日本午夜精品一本在线观看| 亚洲专区一区二区在线观看| 91丝袜在线观看| 中日无码在线观看| 亚洲大尺度在线| 国产精品思思热在线| 四虎成人在线视频| 国产91蝌蚪窝| 国产大片喷水在线在线视频| 久久一本日韩精品中文字幕屁孩| 毛片网站在线播放| 色综合久久综合网| 免费又爽又刺激高潮网址| 国产91特黄特色A级毛片| 免费国产好深啊好涨好硬视频| 一级高清毛片免费a级高清毛片| 亚洲欧洲日韩国产综合在线二区| 伊人久久影视| 色噜噜狠狠狠综合曰曰曰| 欧美国产精品拍自| 国产成人AV综合久久| 亚洲激情区| 亚洲AV无码乱码在线观看裸奔 | 中日韩欧亚无码视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 欧美性爱精品一区二区三区 | 全部无卡免费的毛片在线看| 狠狠综合久久| 伊人福利视频| 国产美女免费| 久草视频精品| 久久综合九九亚洲一区 | 97在线碰| 国产AV毛片| 成人韩免费网站| 美女免费黄网站|