2017-03-27 134 views
0

我已經四處搜索,發現了幾個不同的解決方案,但沒有一個是我正在尋找的。如何在拍照後立即使用照片,然後保存到存儲

我開發,可以讓用戶通過通過MediaStore.ACTION_IMAGE_CAPTURE意圖爲使開啓相機拍攝圖像的應用...

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

,然後保存與圖像

File photo = new File(Environment.getExternalStorageDirectory(), titleOfPhoto + ".jpg"); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); 

我甚至會將縮略圖取回並在onActivityResult()覆蓋中顯示給用戶。

正如標題所示,我想要做的是允許用戶在拍攝後立即在拍攝的圖像上繪製。但是我無法控制打開相機並返回到我的應用程序與已保存的拍攝圖像之間會發生什麼。像SnapChat和WhatsApp的應用程序在做這和這麼多,所以我知道這是可能的,而Android似乎並不具備這種能力建立在

需要明確的是:事件的順序必須是

1)打開相機

2)拍照

3)上繪製圖像

4)按 '確定'/ '完成' 或東西

5)保存編輯後的照片

6)返回縮略圖

反正有一個事件監聽器添加到相機,或以不同的方式,讓更多的控制打開攝像機?任何幫助表示讚賞!謝謝!

回答

1

爲了做到這一點,您將不得不使用Camera Framwork API

其基本原理是在您的應用程序的Surface View中渲染相機輸出。然後,當用戶拍攝照片時,捕捉表面視圖的狀態。從那裏你可以讓你的用戶繪製圖片。完成後,請保存圖片並顯示其縮略圖。

+0

該框架API會幫助很多,非常感謝!但是該文章中的一些示例代碼很難轉換爲我的目的。你能提供一些示例代碼片段來幫助填補空白嗎?例如:如何在拍攝照片後操作SurfaceHolder對象?如何添加繪圖功能? –

+0

我沒有代碼片段,但是離開了我的頭頂,我會在SurfaceView上添加一個清晰的畫布視圖,並允許用戶使用它。這將使它看起來正在繪製圖片。我不知道這將如何保存合併的畫布和圖像,但這可能是一個開始。我爲此所做的所有工作都與視頻有關,因此我不太瞭解圖像捕獲。 – Jlange

相關問題