一個強大圖片的選擇、裁剪工具—看這一個就夠用了

codeGoogle發表於2017-08-14

一款用於在Android裝置上獲取照片(拍照或從相簿、檔案中選擇)、裁剪圖片、壓縮圖片的開源工具庫

效果展示:

圖片拍照
圖片拍照

圖片裁剪
圖片裁剪

TakePhoto 包括以下功能:

  • 支援通過相機拍照獲取圖片
  • 支援從相簿選擇圖片
  • 支援從檔案選擇圖片
  • 支援批量圖片選取
  • 支援圖片壓縮以及批量圖片壓縮
  • 支援圖片裁切以及批量圖片裁切
  • 支援照片旋轉角度自動糾正
  • 支援自動許可權管理(無需關心SD卡及攝像頭許可權等問題)
  • 支援對裁剪及壓縮引數個性化配置
  • 提供自帶裁剪工具(可選)
  • 支援智慧選取及裁剪異常處理
  • 支援因拍照Activity被回收後的自動恢復
  • 支援Android7.0
  • +支援多種壓縮工具

相簿功能
相簿功能

圖片選自
圖片選自

開啟方式
開啟方式

使用TakePhoto有以下兩種方式:

  • 方式一:通過繼承的方式三者之一。

    • 繼承TakePhotoActivity
    • TakePhotoFragmentActivity
    • TakePhotoFragment

      通過getTakePhoto()
      獲取TakePhoto
      例項進行相關操作。
      重寫以下方法獲取結果

      void takeSuccess(TResult result); 
      void takeFail(TResult result,String msg); 
      void takeCancel();複製程式碼
  • 方式二:通過組裝的方式
    在相對應的類中進行新增程式碼

    • 1.實現TakePhoto.TakeResultListener,InvokeListener
      介面。

    • 2.在 onCreate,onActivityResult,onSaveInstanceState
      方法中呼叫TakePhoto對用的方法。

    • 3.重寫onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)

壓縮圖片

你可以選擇是否對圖片進行壓縮處理,你只需要告訴它你是否要啟用壓縮功能以及CompressConfig即可

多選圖片
多選圖片

API

 /**
  * 啟用圖片壓縮
  * @param config 壓縮圖片配置
  * @param showCompressDialog 壓縮時是否顯示進度對話方塊
  * @return
  */
 void onEnableCompress(CompressConfig config,boolean showCompressDialog);複製程式碼

Usage:

TakePhoto takePhoto=getTakePhoto();
takePhoto.onEnableCompress(compressConfig,true);
takePhoto.onPickFromGallery();複製程式碼

相容性

  • Android6.0

    由於Android6.0新增了"執行時許可權控制(Runtime Permissions)",為了應對這一改變,TakePhoto加入和自動許可權管理,當TakePhoto檢測到需要許可權時,TakePhoto會自動申請許可權,所以小夥伴們不用擔心許可權的使用問題。

  • Android7.0

    在Android N中,Android 框架執行了 StrictMode,應用間共享檔案和以前也有所區別。為了適配Android7.0的改變,同時也為了方便大家使用TakePhoto,TakePhoto會自動根據手機的Android版本自行適配,小夥伴們依舊可以向TakePhoto傳遞Uri imageUri = Uri.fromFile(file);
    型別的Uri而不用擔心相容性問題。

    • TakePhoto在深度相容性方面的測試

    相容性測試報告
    相容性測試報告

部落格地址:

www.jianshu.com/p/c83f06651…

專案地址:

github.com/crazycodebo…

相信自己,沒有做不到的,只有想不到的

如果你覺得此文對您有所幫助,歡迎入群 QQ交流群 :232203809
微信公眾號:終端研發部

技術+職場
技術+職場

相關文章