1. 程式人生 > >玩轉Android Camera開發 四 預覽介面四周暗中間亮,只拍攝矩形區域圖片 附完整原始碼

玩轉Android Camera開發 四 預覽介面四周暗中間亮,只拍攝矩形區域圖片 附完整原始碼

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

 雜家前文曾寫過一篇關於只拍攝特定區域圖片的demo,只是比較簡陋,在座標的換算上不是很嚴謹,而且沒有完成預覽介面四周暗中間亮的效果,深以為憾,今天把這個補齊了。

 在上程式碼之前首先交代下,這裡面存在著換算的兩種模式。第一種,是以螢幕上的矩形區域為基準進行換算。舉個例子,螢幕中間一個 矩形框為100dip*100dip.這裡一定要使用dip為單位,否則在不同的手機上螢幕呈現的矩形框大小不一樣。先將這個dip換算成px,然後根據螢幕的寬和高的畫素計算出矩形區域,傳給Surfaceview上鋪的一層View,這裡叫MaskView(蒙板),讓MaskView進行繪製。然後拍照時,通過螢幕矩形框的大小和螢幕的大小與最終拍攝圖片的PictureSize進行換算,得到圖片裡的矩形區域圖片,然後擷取儲存。第二種模式是,預先知道想要的圖片的長寬,如我就是想截400*400(單位為px)大小的圖片。那就以此為基準,換算出螢幕上呈現的Rect的長寬,然後讓MaskView繪製。究竟用哪一種模式,按需選擇。本文以第一種模式示例。下面上程式碼:

 在雜家的前文基礎上進行封裝,首先封裝一個MaskView,用來繪製四周暗中間亮的效果,或者你可以加一個滾動條,這都不是事。

一、MaskView.java