Android大作業(yè)魔幻相機
魔幻相機
一、選題背景
據(jù)統(tǒng)計,中國目前已經(jīng)有4.874億手機用戶。大部分消費者選擇手機產(chǎn)品的首要選擇之一就是手機的拍照功能、像素以及清晰度。尤其是女性人群,想要把人物等照片弄得好看又有意境。目前市場上雖然有Photoshop和Adobe Illustrator等專業(yè)圖像編輯軟件,但其學(xué)習(xí)門檻太高。因此我們小組制作出《美圖照相機》手機android軟件,為該人群提供便利。
該android軟件實現(xiàn)了基本拍照功能、圖片時間事件等分組功能、圖片濾鏡功能、圖片色彩調(diào)節(jié)功能。用戶可以隨時隨地使用該軟件進行拍照、照片事件保存、照片濾鏡修改、照片色彩修改等,輕松獲得美觀大方的照片以及簡潔的照片分類。
二、方案論證(設(shè)計理念)
基于JDK-1.8的開發(fā)平臺,運行于android API 12及以上平臺,大部分android手機兼容該app。
該軟件主要運用到android中的控件,異步加載,緩存等知識、java中的反射繼承多態(tài),內(nèi)部類知識,色彩矩陣變換處理圖像、顏色數(shù)組及顏色分量實現(xiàn)濾鏡知識等等。
整個軟件可以分成四個模塊,拍照功能、照片分類功能、濾鏡功能、色彩調(diào)節(jié),圖片多點觸控功能。
拍照功能:
我們由于自己實現(xiàn)原生相機的難度較大,涉及圖像處理的知識較多,我們選擇android的隱式Intent來調(diào)用系統(tǒng)相機。
照片分類功能:
按照相片的時間進行分類
使用緩存技術(shù)
濾鏡功能:
濾鏡是指安裝在相機鏡頭前過濾自然光的附加鏡頭,用來實現(xiàn)調(diào)色和添加效果。軟件實現(xiàn)的濾鏡可以模擬大部分的鏡頭濾鏡,如色溫變換濾鏡(LB)和強調(diào)濾鏡等.
軟件模擬鏡頭濾鏡中,實現(xiàn)濾鏡功能是對照片中的色彩進行映射的過程。且可以為照片增加光線變化(如 LOMO 的暗角效果)、疊加材質(zhì)和應(yīng)用相框等等等,而我們采取最基本的顏色映射方法。 顏色映射是指將原來照片中的每一種顏色,通過某種映射方法轉(zhuǎn)換成另一種顏色,從而使圖片顯示出不同的色調(diào),改變圖片的意境。
色彩調(diào)節(jié)功能:
一張好的照片,除了要有好的內(nèi)容外,色彩和層次感也一定要分明。有彩色系的顏色具有三個基本特性:色相、純度(也稱彩度、飽和度)、明度
色相: 色相是有彩色的最大特征。其能夠比較確切地表示某種顏色色別的名稱。調(diào)節(jié)色相時會很直觀看到照片顯示的色調(diào)是藍、黃或其他顏色。
純度: 色彩的純度是指色彩的純凈程度,它表示顏色中所含有色成分的比例。含有色彩成分的比例愈大,則色彩的純度愈高,含有色成分的比例愈小,則色彩的純度也愈低。
明度:明度是指色彩的明亮程度。各種有色物體由于它們的反射光量的區(qū)別而產(chǎn)生顏色的明暗強弱。色彩的明度有兩種情況:一是同一色相不同明度,二是各種顏色的不同明度。
有彩色的色相、純度和明度三特征是不可分割的,通過改變圖片的飽和度、色溫、亮度來進行調(diào)節(jié)圖片的色彩,從而使圖片色彩飽滿,別有韻味圖片多點觸控功能:
實現(xiàn)了圖片的平移縮放等功能。具體為兩指或者多組放大縮小,圖片雙擊放大或者縮小,圖片平移。
三、過程論述
該android 軟件的實現(xiàn)功能共有四大模塊:拍照功能、照片分類功能、濾鏡功能、色彩調(diào)節(jié),圖片多點觸控功能。
Activity之間的跳轉(zhuǎn)如下:
CameraActivity
(照相功能)
導(dǎo)航:
該模塊的實現(xiàn)過程是:
1.加載menu 目錄下的xml文件。
2. 使用java的反射機制,實現(xiàn)隱藏菜單從ActionBar下方出現(xiàn)以及item圖標(biāo)的顯示。由于代碼的重復(fù)出現(xiàn),代碼設(shè)計成工具類。
主界面:
主界面是一個滑動的界面,采用繼承于HorizontalScrollView改寫的控件進行布局
界面截圖:
拍照功能:
該模塊的實現(xiàn)過程是:
通過Intent 的隱式調(diào)用,調(diào)用其他的系統(tǒng)相機應(yīng)用。
在OnActivityResult中處理圖片;
圖片瀏覽功能:
1.ZoomImageView類繼承于ImageView,實現(xiàn)了OnTouchListner等接口
2.該類包括雙擊緩慢放大,圖像平移,多指觸控等功能
3.具體表現(xiàn)為兩指或者多組放大縮小,圖片雙擊緩慢放大或者縮小,圖片平移隨手指移動。
4 、通過OnTouch事件以及Matrix(該類實現(xiàn)圖片的縮放平移)這個類,并在縮放或平移過程中,進行邊界檢查
5 以下為放大圖片:
濾鏡功能:
該模塊實現(xiàn)功能是:
獲取當(dāng)前圖片的像素值
2. 在Gallery中選則濾鏡功能。
其中Gallery中的圖片均經(jīng)過濾鏡處理后顯示
Gallery中可以快速滑動來選去喜歡的濾鏡功能
點擊邊界上的圖片后,其后繼圖片將自動移動到當(dāng)前界面。
此處一共有25中濾鏡特效,每種有著不同的色調(diào)計算公式。
3. 將當(dāng)前圖片的顏色數(shù)組及顏色分量進行相應(yīng)改變
4. 獲取改變后的圖片并顯示。
5. 如喜歡可保存在手機圖庫中。
如圖 Figure-濾鏡功能
Figure 1 濾鏡功能
色彩調(diào)節(jié)功能:
該模塊實現(xiàn)功能是:
通過三條SeekBar來改變圖片的色溫、飽和度、明度;
獲取SeekBar上長度,通過相應(yīng)數(shù)學(xué)計算公式,獲得相應(yīng)的色相、飽和度、明度的數(shù)值;
通過色彩矩陣變換來處理圖像,并顯示相應(yīng)圖片。
調(diào)節(jié)喜歡的色調(diào)后,可保存在手機圖庫中。
如圖figure-色彩調(diào)節(jié):
Figure 2色彩調(diào)節(jié)
照片分類功能:
1.ListViewAdapter繼承BaseAdapter,為相冊主界面的ListView提供數(shù)據(jù)源,每一個子項有一個TextView和GridView分別用于顯示時間和分類好的圖片。
2.PhotoAdapter繼承ArrayAdapter,為GridView提供數(shù)據(jù)源,每個子項有一個ImageView,用于顯示圖片。
3.在GridView中使用AsyncTask異步加載圖片。
課程設(shè)計總結(jié)
1.本次課程設(shè)計,我主要負責(zé)主界面以及圖片展示部分以及ActionBar的編寫。
通過本次課程設(shè)計,我更好的掌握了Android基本控件的應(yīng)用以及Android布局的編寫。
學(xué)會合團隊作,動手能力得到加強。
對Android自定義空間有了更深刻的理解和改寫能力,閱讀源代碼的能力進一步得到提高。
對Android各種View都有一定的了解,對View的內(nèi)部機制包括測量(onMeasure) 布局(onLayout)繪制(onDraw)有了了解
參考文獻
[ 1 ] 《Java開發(fā)手冊》.桂穎, 谷濤.電子工業(yè)出版社
[ 2 ] 《Android 第一行代碼》.郭霖 電子工業(yè)出版社
[ 3] 《java核心技術(shù)》.Cay S.Horstmann Gary Cornell .機械工業(yè)出版社
[ 4] Android 官網(wǎng)教程 網(wǎng)址:http://hukai.me/android-traini
源碼鏈接:https://yunjunet.cn/875497.html