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
“簡直”和“幾乎”的表達功能
主站蜘蛛池模板: 美女被躁出白浆视频播放| 亚洲精品视频网| 97se亚洲综合在线天天| 五月天福利视频| 午夜无码一区二区三区在线app| 亚洲一道AV无码午夜福利| 91小视频在线观看免费版高清| 国产激爽大片高清在线观看| 国产综合亚洲欧洲区精品无码| 免费一级毛片完整版在线看| 国产午夜看片| 国产午夜精品一区二区三| 欧美亚洲一二三区| 97国产在线观看| 国产精品成人不卡在线观看| 国产免费a级片| 在线观看亚洲人成网站| 麻豆国产精品视频| 成人a免费α片在线视频网站| 亚洲v日韩v欧美在线观看| 精品一区国产精品| 啪啪永久免费av| 国产午夜福利在线小视频| 亚洲h视频在线| 色天天综合久久久久综合片| 亚洲精选无码久久久| 国产sm重味一区二区三区| 亚洲精品无码AV电影在线播放| 亚洲国产高清精品线久久| 国产精品无码AV中文| 91精品国产一区| 国产香蕉国产精品偷在线观看| 97精品国产高清久久久久蜜芽| 久久免费观看视频| 欧美国产在线一区| 无码精品福利一区二区三区| 亚洲天堂视频在线免费观看| 呦视频在线一区二区三区| 黄色片中文字幕| 女人一级毛片| 国产日韩欧美在线视频免费观看| 尤物特级无码毛片免费| 人妻精品久久无码区| 天天干天天色综合网| 香蕉综合在线视频91| 午夜福利视频一区| 亚洲欧美日韩天堂| 日韩欧美高清视频| 国产高清精品在线91| 欧美精品另类| 国产男人天堂| 午夜不卡福利| 精品国产中文一级毛片在线看 | 欧美性爱精品一区二区三区| 久久国产精品影院| 伊人色在线视频| 无码不卡的中文字幕视频| 国产成人综合亚洲欧美在| 少妇精品网站| 成人年鲁鲁在线观看视频| 91香蕉视频下载网站| 不卡的在线视频免费观看| 免费一级毛片在线观看| 91人妻日韩人妻无码专区精品| 四虎亚洲精品| 日韩欧美在线观看| 国产一级毛片网站| 午夜视频在线观看免费网站| 国产欧美在线观看一区| 亚洲中文精品人人永久免费| 欧美一级在线| 亚洲欧美日韩精品专区| 日韩精品高清自在线| 成人午夜久久| 四虎AV麻豆| 欧美亚洲一区二区三区导航| 欧美午夜在线观看| 日韩高清成人| 亚洲色图欧美激情| 91视频首页| 综合色88| 亚洲精品无码不卡在线播放|