回覆列表
  • 1 # 使用者2329249300659

    呼叫相機拍照,為了相容性,一定要指定拍照生成的圖片的uri路徑,讓相機拍照的圖片就存那個檔案,這樣你拍照成功後就不用在intent裡讀data(或者其他欄位,中國產rom各種不同),直接讀取你預先設定好的檔案就行.

    進一步講,不僅僅是拍照,從相簿選擇圖片,以及裁剪也有一大堆坑,各家手機廠商都有他們自己的相簿實現和裁剪實現,對於開發者來說,如果用系統的intent去做這兩件事,那麼bug永遠解決不完,所以現在都是用第三方庫.

    基於我用過的幾個體驗最好的庫,我把拍照/相簿選擇->裁剪->壓縮 整個流程都封裝了一下,程式碼見這裡:

    PhotoOut

    ps: 我這裡的是intent呼叫,不涉及到直接的camera api操作.你如果是直接操作camera api,構建surfaceview來拍照,那麼解決方案是像其他幾個回答一樣,拿到本機器支援的camerasize,迴圈判斷,選一個與你的需求最接近的解析度,然後按這個解析度來拍照.

  • 中秋節和大豐收的關聯?
  • 與宸字有關的成語?