android 通用工具類

組件化common功能介紹

一. base 主要是封裝activity、view、fragment、presenter 基類

1.BaseActivity

  • getPresenter() 獲取Presenter對象

  • getLayoutId();統一初始化

  • initView();初始化view

  • initLoad(); 加載數據

  • setListener(); 設置監聽事件

  • setCreateView(); 統一管理fragment

  • initImmersionBar();初始化沉浸式狀態欄

  • isImmersionBarEnabled();是否開啓沉浸式狀態欄

  • showLoadingDialog();顯示加載的動畫

  • closeLoadingDialog()關閉加載的動畫

2.BaseFragment

  • getPresenter() 獲取Presenter對象

  • getLayoutId();統一初始化

  • initView();初始化view

  • initLoad(); 加載數據

  • setListener(); 設置監聽事件

  • setCreateView(); 統一管理fragment

  • initImmersionBar();初始化沉浸式狀態欄

  • isImmersionBarEnabled();是否開啓沉浸式狀態欄

  • showLoadingDialog();顯示加載的動畫

  • closeLoadingDialog()關閉加載的動畫

3.BaseView

  • showProgressDialog();顯示動畫

  • void dimissProgressDialog();隱藏動畫

  • errorMessage(String msg)錯誤碼信息

4.BasePresenter

  • attachView(T t); 綁定View

  • detachView();銷燬View

二.imageloader 主要是有關圖片框架的封裝 以及對圖片的處理(Glide4.0版本以上)

1. ImageLoaderManager

  • loadImage(); 加載圖片,分爲默認加載、帶有佔位圖以及錯誤圖片加載

  • loadFileImage();加載文件圖片,分爲默認加載、帶有佔位圖以及錯誤圖片加載

  • loadResourceImage();加載本地資源圖片,分爲默認加載、帶有佔位圖以及錯誤圖片加載

  • loadCircleImage();加載圓形圖片

  • loadRoundImage();加載圓角圖片

  • loadSizeImage();加載自定義尺寸圖片

  • loadBlurImage();加載高斯圖片

  • loadGifImage();加載Gif動圖

2.imageUtils

  • bitmap2Bytes();、bytes2Bitmap(); bitmap、bytes 互轉

  • drawable2Bitmap();、bitmap2Drawable(); bitmap、drawable互轉

  • drawable2Bytes();、bytes2Drawable(); byte、drawable互轉

  • view2Bitmap(); view轉換爲bitmap

  • getBitmap(); 獲取bitmap

  • drawColor(); bitmap進行着色

  • scale(); 縮放

  • clip(); 剪裁

  • skew(); 傾斜

  • rotate();旋轉

  • getRotateDegree();獲取旋轉角度

  • toRound(); 轉化爲圓形圖片

  • toRoundCorner(); 轉化爲圓角圖片

  • addCornerBorder(); 添加圓角邊框

  • addCircleBorder(); 添加圓形邊框

  • addReflection(); 添加倒影

  • addTextWatermark(); 添加文字水印

  • addImageWatermark();添加圖片水印

  • toAlpha(); 轉化爲帶有透明度

  • toGray();轉化帶有灰度的圖片

  • fastBlur(); 快速模糊

  • renderScriptBlur(); 模糊

  • save(); 保存

  • isImage(); 判斷是否是圖片

  • getImageType(); 獲取圖片類型

  • compressByScale(); 按照縮放進行壓縮

  • compressByQuality(); 按質量進行壓縮

  • compressBySampleSize(); 按採樣大小進行壓縮

  • getSize(); 獲取圖片尺寸大小

  • calculateInSampleSize(); 返回樣本的大小

三. net 網絡工具類

1.ApiUtils

  • ApiUtils(); 構造函數

  • getOkHttpClient(); 返回OkHttpClient對象,內部參數配置,根據項目自行配置。

  • getRetrofit(); 獲取Retrofit對象,設置Retrofit參數,根據項目自行配置

  • getInstance(); 創建單例模式

  • getService(); 通過java反射獲取對象(獲取業務對象)

  • getApiService(); 獲取api業務對象,根據項目需要自行更改

2.BaseEntity

  • 網絡返回數據 基類 支持泛型

  • code 響應碼 message 信息 data 對象根據自己項目需求進行更改

3.BaseObserver

  • Observer基類,網絡請求根據不同響應碼做出相關的處理

4.InterceptorUtil

  • LogInterceport(); 日誌攔截器

  • HeaderInterceptor(); 網絡攔截器 可以自行添加請求頭,根據項目需求來定

5.OnSuccessAndFaultListener

  • 監聽網絡請求數據成功與錯誤

  • onSuccees(); 成功返回的實體

  • onCodeError(); 錯誤返回的實體

6.RxSchedulerHepler

  • 進行主線程與子線程切換

  • 使用方法可以連貫調用

            ApiUtils.getInstance().getApiService()
                   .方法名()              
                   .compose(RxSchedulerHepler.io_main())
                   .subscribe(new BaseObserver<Bean>(view, new                                          OnSuccessAndFaultListener() {
                       @Override
                       public void onSuccees(BaseEntity t) {
                           view.showData(t);
                       }       @Override
                   public void onCodeError(BaseEntity t) {
                       view.errorCodeBean(t);
                   }
               }));

四. permission權限相關的

1.annotations

  • HasPermission 有權限被授權的註解

  • NoPermission 有權限被拒絕的註解

2.base

  • PermissionActivity Activity權限的基類

3.bean

  • Permission 權限清單

  • PermissionInfo 權限信息的實體類

4.call

  • OnRequestCallBack 權限請求回掉接口

  • hasPermission(); 有權限被授權時回掉

  • noPermission(); 有權限被拒絕時回掉權限

5.request

  • EasyPermissions 回調接口請求權限

  • EasyPermissions(); 構造函數 不允許被實例化

  • request(); 請求權限

  • onRequestPermissionsRequest(); 在Activity或者是Fragment中的同名同參方法調用此方法

  • PermissionUtils 請求權限工具類

  • gotoPermissionSettings(); 跳轉到應用權限頁面

  • isHasPermission(); 檢查某些權限是否全部授權了

  • isOverMarshmallow(); 判斷是否是android6.0以上

  • checkPermissionPermanentDenied(); 檢查某個權限是否被永久拒絕

  • executeSucceedMethod(); 執行成功的方法

  • executeFailMethod(); 執行失敗的方法

  • getFailPermissions(); 獲取沒有授權的權限

  • getSucceedPermissions(); 獲取已授權的權限

  • getActivity(); 獲取Activity 對象

  • requestPermissions(); 申請權限

  • checkObject(); 檢測對象是否符合要求

  • isCorrectObject(); 檢查對象是否是Activity或者Fagment

  • isEmptyPermissions();檢查權限是否爲空

  • arrayConversion();數組轉換,將String數組轉換爲PermissionInfo集合

  • SimplePermissions 通過註解的方法請求權限

  • SimplePermissions();構造函數,不能被實例化

  • request(); 請求權限

  • onRequestPermissionsResult(); 回掉方法

五.photoutil 打開相機相冊

1. PhotoHelp 對相冊、相機進行操作

  • PhotoHelp 注意PhotoHelp中打開相冊,provider

根據自己androidManifest指定的進行配置,否則項目會報錯

  • applyForCameraPermission(); 獲取相機權限打開相機

  • cameraPermissionResult(); 相機權限的回調

  • showCameraAction(); 跳轉相機

  • autoObtainStoragePermission(); 獲取相冊權限,打開相冊

  • xiangCepermissionResult(); 相冊的權限回調

  • xiangceResult(); 獲取相冊選取的圖片

  • getFilePath(); 獲取文件路徑

2.PhotoUtils 相機相冊相關工具類

  • hasSdcard(); 檢查設備是否存在SD卡

  • openPic(); 打開相冊請求

  • getBitmapFromUri(); 讀取uri 所在的圖片

  • getPath(); 根據Uri 獲取路徑

六. update 升級app

1.UpdateApp

  • showUpdateDialog(); 點擊下載彈窗

  • downFile(); 下載文件

  • installAPK();下載到本地後執行安裝

七. utils 常用的工具類

  • ActivityUtils Activity管理類

  • AnimationUtils 動畫相關工具類

  • AppUtils App相關工具類

  • ArgbUtils 顏色漸變工具類

  • ClickUtils 點擊相關的工具類

  • Colors 一些常用的顏色色值

  • ColorsUtils 顏色相關的工具類

  • CountDown 倒計時工具類

  • DateUtils 日期操作相關的工具類

  • DeviceUtils 手機設備相關的工具類

  • DialogUtils 對話框相關的工具類

  • EncryptUtils 加密相關的工具類

  • FileIoUtils 文件相關 有關流讀取工具類

  • FileUtils 文件相關工具類

  • FragmentUtils Fragment管理工具類

  • GsonUtils Gson相關工具類

  • HtmlUtils 主要給字符串添加html

  • KeyboardUtils 鍵盤相關

  • LanguageUtils 語言相關

  • LocationUtils 定位相關服務

  • LogUtils Log日誌相關工具類

  • LoopTimer 循環定時器相關工具類

  • PackageUtils 包信息相關工具類 類似AppUtils

  • PhoneUtils 手機相關工具類

  • PreferencesUtils sp保存信息相關工具類

  • ShellUtils shell工具類 檢查系統root權限 並在shell或者root用戶下執行命令

  • SpanUtils SpannableString 相關工具類

  • StringUtils String相關工具類

  • ToastUtils Toast相關工具類

  • TransitionTime 用來顯示時間多久之前

  • WebViewManager WebView管理器,提供常用的設置

八. view 自定義加載中動畫

九. 三方依賴 需要API引入 是解決其他的Module可以直接導入

// V7支持包 版本:28.0.0
api 'com.android.support:appcompat-v7:28.0.0'
//約束佈局 版本:1.1.3
api 'com.android.support.constraint:constraint-layout:1.1.3'
// V4支持包 版本:28.0.0
api 'com.android.support:support-v4:28.0.0'
//RecyclerView 版本:28.0.0
api 'com.android.support:recyclerview-v7:28.0.0'
// Design,版本28.0.0
api 'com.android.support:design:28.0.0'
//okhttp3網絡框架 版本:3.14.0
api 'com.squareup.okhttp3:okhttp:3.14.0'
//Okhttp,Log插件 網絡請求框架 版本:3.14.0
api 'com.squareup.okhttp3:logging-interceptor:3.14.0'
//GOSN JSON解析框架 版本:2.8.5
api 'com.google.code.gson:gson:2.8.5'
//Retrofit網絡請求框架 版本:2.6.0
api 'com.squareup.retrofit2:retrofit:2.6.0'
//Retrofit與GSON整合依賴包 版本:2.6.0
api 'com.squareup.retrofit2:converter-gson:2.6.0'
//Retrofit與Rxjava2整合依賴包 版本號:2.6.0
api 'com.squareup.retrofit2:adapter-rxjava2:2.6.0'
//RxJava2一種響應式編程框架 版本號:2.+
api 'io.reactivex.rxjava2:rxjava:2.+'
//RxJava2與Android整合依賴包 版本號:2.+
api 'io.reactivex.rxjava2:rxandroid:2.+'
//Glide圖片加載框架 版本號:4.10.0
api 'com.github.bumptech.glide:glide:4.9.0'
//Glide自動編譯器  版本:4.10.0
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
//EventBus依賴包
api 'org.greenrobot:eventbus:3.1.1'
//強大靈活的適配器 版本號:2.+
api 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.+'
//自動查找ID 版本號:8.8.1
api 'com.jakewharton:butterknife:8.8.1'
//自動查找ID自動編譯器 版本:8.8.1
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
// 沉浸式狀態欄
api 'com.gyf.immersionbar:immersionbar:3.0.0'

 

發佈了394 篇原創文章 · 獲贊 52 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章