摘 要: 分析了基于Android的手機相冊分享軟件的功能模塊,,對其進(jìn)行架構(gòu)設(shè)計和代碼實現(xiàn),,完成了照片拍攝,特效編輯等功能,,并以廣泛使用的新浪微博為例,,探討了如何通過微博授權(quán)進(jìn)行分享。
關(guān)鍵詞: Android,;手機相冊,;分享;微博,;設(shè)計與實現(xiàn)
1 需求分析及技術(shù)思路
移動互聯(lián)網(wǎng),,就是將互聯(lián)網(wǎng)和移動通信二者融合起來,成為一體,?;ヂ?lián)網(wǎng)和移動通信成為當(dāng)今世界發(fā)展最快、市場前景最大的業(yè)務(wù),,隨著4G移動通信技術(shù)的發(fā)展,,移動終端不僅是通信網(wǎng)絡(luò)的終端,還將成為互聯(lián)網(wǎng)的終端,,移動終端的應(yīng)用軟件迎來了巨大的發(fā)展空間,,隨時隨地通過手機發(fā)微博成為廣大網(wǎng)民交流信息的方式[1]。該軟件具有拍攝照片,、編輯照片,、查看刪除、換膚等功能,,并且可以發(fā)布到新浪微博進(jìn)行分享,。
本軟件是基于Android操作系統(tǒng)開發(fā)的。Android是一個完整的手機軟件平臺,其主要組件有:活動(Activity),、意圖(Intent),、服務(wù)(Service)、內(nèi)容(Content),、廣播接收器(Broadcast Receiver),。活動是表示層,,是一個負(fù)責(zé)與用戶交互的組件,,可以顯示信息并響應(yīng)用戶的行為;意圖是一個簡單的消息傳遞框架,,用來完成Android各個組件之間的通信,;服務(wù)是一個應(yīng)用程序,它的生命周期很長但不能自己運行只能后臺運行,,主要負(fù)責(zé)更新數(shù)據(jù)源和可見的活動以及觸發(fā)通知,,并且可以和其他組件進(jìn)行交互;內(nèi)容主要負(fù)責(zé)數(shù)據(jù)的存儲,;廣播接收器配合意圖的廣播消息使用,,它可以監(jiān)聽符合特定條件的廣播[2]。
2 軟件分析與設(shè)計
2.1 系統(tǒng)功能劃分
功能模塊劃分是描述系統(tǒng)的一個過程,,需要將需求分析中的感性描述進(jìn)行抽象化,,提取出要實現(xiàn)的功能,這是整個軟件開發(fā)的一個關(guān)鍵過程,。在系統(tǒng)分析的基礎(chǔ)上,,確定系統(tǒng)的功能模塊,如圖1所示,。功能模塊主要劃分為:拍攝照片,、相冊瀏覽,、相片編輯,、登錄到新浪微博進(jìn)行分享幾大功能。
2.2 實現(xiàn)步驟
?。?)通過注冊新浪微博賬戶,,在weibo官方網(wǎng)站上輸入所需創(chuàng)建應(yīng)用的基本信息,所創(chuàng)建應(yīng)用的AppKey及AppSecret作為新浪微博開放平臺各API的身份標(biāo)志,,申請到AppKey和AppSecret后,,就可以調(diào)用微博開放平臺上的一系列接口;
?。?)調(diào)用系統(tǒng)Camera,,使用的是Intent Camera方式,借助Intent和MediaStroe調(diào)用系統(tǒng)Camera App程序來實現(xiàn)拍照功能,;
?。?)獲得SD卡DCIM中所有圖片,,獲取每張圖片的id,為刪除,、分享等操作做準(zhǔn)備,;
(4)實現(xiàn)獨立的編輯類和編輯布局,,獨立的編輯類對布局中對應(yīng)的效果按鈕進(jìn)行相應(yīng)的處理,;
(5)對一個ImageButton的處理,,提供多個皮膚供用戶選擇,,同樣需要對按鈕設(shè)置事件監(jiān)聽,以此來捕捉事件并處理,。
3 系統(tǒng)實現(xiàn)
3.1 開發(fā)環(huán)境構(gòu)建
Android的應(yīng)用開發(fā)通常使用Google提供的Android SDK中的工具集,,它包括編譯器、調(diào)試器,、資源管理器和模擬器,,另外通常使用Eclipse加上ADT插件(Android Development Tools)作為集成開發(fā)環(huán)境。本系統(tǒng)開發(fā)環(huán)境需要的工具有Eclipse,、Android SDK,、JDK以及ADT。開發(fā)環(huán)境搭建的具體過程為:(1)安裝JDK并配置Java環(huán)境變量,;(2)安裝集成開發(fā)環(huán)境Eclipse,,并安裝工具插件ADT,該插件提供了設(shè)備模擬器,、內(nèi)存和效率調(diào)優(yōu)工具,、調(diào)試工具;(3)安裝Android SDK,,將tools所在文件夾路徑加入到path的環(huán)境變量中,;(4)通過AVD Manager添加手機模擬器并測試環(huán)境[3]。
3.2 系統(tǒng)功能實現(xiàn)
?。?)能夠綁定SNS社區(qū)賬戶,,第一次訪問需要授權(quán)及認(rèn)證,以后便可直接訪問采用Oauth2.0隱式授權(quán)認(rèn)證方式登錄,,其核心代碼如下,。
Context context=MainMainActivity.this;
WifiManager wifimanager=context.getSystemService
?。–ontext.WIFI_SERVICE),;
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);}
if(num==1){
Weibo weibo=Weibo.getInstance();
weibo.setupConsumerConfig(CONSUMER_KEY,,
CONSUMER_SECRET),;
weibo.setRedirectUrl("http://www.sina.com");
//此處回調(diào)頁內(nèi)容應(yīng)該替換為與Appkey對應(yīng)的應(yīng)用回調(diào)頁
weibo.authorize(MainMainActivity.this,,new AuthDialogListener()),;}
else{Intent intent=new Intent(MainMainActivity.this,MainActivity.class),;
startActivity(intent),;
onDestroy();}
?。?)拍攝,、查看、共享及分發(fā)的功能
使用Android拍照,,實現(xiàn)起來比較簡單,,直接調(diào)用手機內(nèi)置的攝像頭。
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE),;
?。?)圖片編輯功能
圖像的編輯包括對圖像進(jìn)行異彩、負(fù)片,、增強,、黑白、水印,、對稱,、放縮等操作,在換膚功能中,,軟件為拍攝的照片提供了3套皮膚用來換膚,。
(4)換膚功能,,提供換膚模板庫供用戶選擇
先將幾套皮膚放在res/drawable目錄里,,然后用SharePreference來記錄當(dāng)前的皮膚資源id,最后在啟動呈現(xiàn)出的時候加載Activity背景,。
public final static String SKIN_PREF="skinSetting",;
public SharedPreferences skin,;private Activity PaperActivity,;
private int[] paperResources={R.drawable. wallpaperA,R.drawable.wallpaperB,,R.drawable.wallpaperC,,R.drawable.wallpaperD,R.drawable.wallpaper_g};
public int getSkinType(){
String key="skin_type",;
return skin.getInt(key,,0);}
public SkinSettingManager(Activity activity){
this.PaperActivity=activity,;
skin=PaperActivity.getSharedPreferences(SKIN_PREF,,3);}
本文對Android編程技術(shù)進(jìn)行了研究,,實現(xiàn)了基于Android的圖像共享軟件,,用戶可以使用該軟件進(jìn)行拍攝照片、特效編輯,、護(hù)膚等功能,,并且可以隨時隨地通過新浪微博進(jìn)行共享。
參考文獻(xiàn)
[1] 姬莉霞,,馬建紅,,張雷.基于Android的智能圖像共享系統(tǒng)的研究[J].計算機與現(xiàn)代化,2012(8):87-89.
[2] 王為學(xué),,谷剛.基于Android和Wi-Fi的智能點菜終端設(shè)計與實現(xiàn)[J].電腦開發(fā)與應(yīng)用,,2011(12):40-42.
[3] 羅軍舟,吳文甲,,楊明.移動互聯(lián)網(wǎng):終端,、網(wǎng)絡(luò)與服務(wù)[J].計算機學(xué)報,2011(11):2029-2051.