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

一款用於在Android設備上獲取照片(拍照或從相冊、文件中選擇)、裁剪圖片、壓縮圖片的開源工具庫git

效果展現:

圖片拍照
圖片拍照

圖片裁剪
圖片裁剪

TakePhoto 包括如下功能:

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

圖庫功能
圖庫功能

圖片選自
圖片選自

打開方式
打開方式

使用TakePhoto有如下兩種方式:

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

    • 繼承TakePhotoActivity
    • TakePhotoFragmentActivity
    • TakePhotoFragmentbash

      經過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便可
ui

多選圖片
多選圖片

APIspa

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

Usage:code

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
微信公衆號:終端研發部

技術+職場
技術+職場
相關文章
相關標籤/搜索