天天看點

[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果

    由于随手拍項目想做成類似于美圖秀秀那種底部有一排Menu實作不同效果的功能,這裡先簡單介紹如何通過Menu實作打開相冊中的圖檔、懷舊效果、浮雕效果、光照效果和素描效果.後面可能會講述如何通過PopupWindow實作自定義的Menu效果.

    希望文章對大家有所幫助,如果有錯誤或不足之處請海涵~

   Android手機上有個Menu按鍵,點選他會彈出一個菜單,通常在螢幕底部或右上角,在選項菜單OptionsMenu中最多顯示2排每排3個菜單項,可以包含自定義的圖檔和文字.如果Menu菜單項多于6項時,第6項(Expanded Menus,擴充菜單)會變成More,點選它會顯示後面所隐藏的所有選項.

    下面講述如何在Android 4.0項目中實作簡單的Menu功能.添加如下代碼:

[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果
[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果

同時設定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.圖檔懷舊效果

    顯示效果如下圖所示:

[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果
[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果

2.圖檔浮雕效果

   顯示效果如下圖所示:

[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果

3.圖像模糊效果

該圖顯示效果不是很理想,對高斯模糊了解還不夠,建議大家看我收藏合集裡面講述模糊的超連結.

4.圖像光照效果

    顯示效果如下圖所示 

[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果
[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果

5.圖檔銳化效果

    本打算采用拉普拉斯算子或Sobel算子對圖像進行銳化,在使用C++對24位bmp圖像處理時能非常好的顯示圖像的輪廓,但是Android總是效果不是很好啊,而且有虛線!網上一些銳化效果完全沒有實作顯示圖像輪廓,與原圖差別不大,感覺是錯誤的方法.研究ing

   作圖是其顯示效果,而右圖是我以前《數字圖像處理》課用C++寫的不同模版的銳化效果.

[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果
[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果

    下面再介紹些效果,下面這個效果是參考亞瑟BOY的冰凍效果.

<a target="_blank" href="http://www.eoeandroid.com/thread-176490-1-1.html"></a>

  下面這個代碼是CSDN的xu_fu部落客的素描處理,對我軟體有用.

      效果顯示如下圖所示,在Menu選擇中調用函數IceImage或SuMiaoImage即可實作.

[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果
[Android] 通過Menu實作圖檔懷舊、浮雕、模糊、光照和素描效果

    最後希望文章對大家有所幫助,感謝上面提到的作者,同時可能還有些如LOMO等效果可參考下面的文章,它是圖像處理的一個集合超連結.後面會寫PopupWindows實作美圖秀秀的效果和對人臉進行處理.

    源代碼下載下傳:

    (By:Eastmount 2014-11-2 晚8點 http://blog.csdn.net/eastmount/)

繼續閱讀