由于随手拍項目想做成類似于美圖秀秀那種底部有一排Menu實作不同效果的功能,這裡先簡單介紹如何通過Menu實作打開相冊中的圖檔、懷舊效果、浮雕效果、光照效果和素描效果.後面可能會講述如何通過PopupWindow實作自定義的Menu效果.
希望文章對大家有所幫助,如果有錯誤或不足之處請海涵~
Android手機上有個Menu按鍵,點選他會彈出一個菜單,通常在螢幕底部或右上角,在選項菜單OptionsMenu中最多顯示2排每排3個菜單項,可以包含自定義的圖檔和文字.如果Menu菜單項多于6項時,第6項(Expanded Menus,擴充菜單)會變成More,點選它會顯示後面所隐藏的所有選項.
下面講述如何在Android 4.0項目中實作簡單的Menu功能.添加如下代碼:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM4YDMzMjM3EjMwETM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
同時設定XML格式顯示圖檔:
然後通過onOptionsItemSelected(MenuItem item)實作選擇圖檔,通過調用自定義函數實作各種功能.
其中打開圖檔函數實作方法如下,而上面的很多自定義函數都将在第三部分介紹,你此處可以注釋掉隻驗證"打開圖檔".首先添加自定義變量和擷取ImageView布局.
然後通過自定義函數OpenImage打開函數,與前面文章介紹的方法一樣.
下面講講使用Options Menu的函數:
onCreateOptionsMenu(Menu
menu)建立options
menu,這個函數隻會在menu第一次顯示時調用.
onOptionsItemSelected(MenuItem
item)處理選中的菜單項.
在通過menu.add函數實作添加菜單項,如menu.add(Menu.NONE,Menu.FIRST+1,1,"打開"),第一個參數表示組别;第二個參數menu标志編号與onOptionsItemSelected函數中值對應;第三個參數是在菜單中出現的順序,順序由小到大,由左至右;第四個參數是顯示的文字,同時setIcon可以設定圖示.
最後講講各個效果實作過程,通過不同自定義函數實作.其中各個效果主要參照《Android圖像處理總結》那篇文章和eoeAndroid社群亞瑟的文章.
書籍下載下傳位址:
1.圖檔懷舊效果
顯示效果如下圖所示:
2.圖檔浮雕效果
顯示效果如下圖所示:
3.圖像模糊效果
該圖顯示效果不是很理想,對高斯模糊了解還不夠,建議大家看我收藏合集裡面講述模糊的超連結.
4.圖像光照效果
顯示效果如下圖所示
5.圖檔銳化效果
本打算采用拉普拉斯算子或Sobel算子對圖像進行銳化,在使用C++對24位bmp圖像處理時能非常好的顯示圖像的輪廓,但是Android總是效果不是很好啊,而且有虛線!網上一些銳化效果完全沒有實作顯示圖像輪廓,與原圖差別不大,感覺是錯誤的方法.研究ing
作圖是其顯示效果,而右圖是我以前《數字圖像處理》課用C++寫的不同模版的銳化效果.
下面再介紹些效果,下面這個效果是參考亞瑟BOY的冰凍效果.
<a target="_blank" href="http://www.eoeandroid.com/thread-176490-1-1.html"></a>
下面這個代碼是CSDN的xu_fu部落客的素描處理,對我軟體有用.
效果顯示如下圖所示,在Menu選擇中調用函數IceImage或SuMiaoImage即可實作.
最後希望文章對大家有所幫助,感謝上面提到的作者,同時可能還有些如LOMO等效果可參考下面的文章,它是圖像處理的一個集合超連結.後面會寫PopupWindows實作美圖秀秀的效果和對人臉進行處理.
源代碼下載下傳:
(By:Eastmount 2014-11-2 晚8點 http://blog.csdn.net/eastmount/)