一個小巧快速的 Android 文件選擇器框架

Banner

AndroidFilePicker

它沒有像 Rocky,Cosmos 或是 Peppa 這樣的名字。 Android File Picker 正如其名,是一個本地文件選擇器框架。 他的一些特徵以下所述:html

  • ActivityFragment 中啓動
    • 從一行代碼開始
  • 瀏覽本地存儲中的全部文件
    • 內置默認文件類型和文件鑑別器
    • 或者您能夠本身實現文件類型
  • 自定義列表過濾器
    • 只想顯示圖片(或視頻,音頻......)? 沒問題!
    • 固然,您也可只顯示文件夾
  • 自定義item點擊事件:只須要實現監聽器
  • 四個內置主題和自定義主題
  • 還有更多待您本身探索的特性(?)
Rail Style(default) Reply Style Crane Style Shrine Style

下載使用

  1. 在你的項目中添加依賴

如今項目 build.gradle 配置文件添加倉庫:java

allprojects {
    repositories {
	    ...
    	maven { url 'https://jitpack.io' }
    }
}
複製代碼

而後在子模塊(app)的配置文件添加依賴:android

dependencies {
    implementation 'me.rosuh:AndroidFilePicker:latest_version'
}
複製代碼

latest_version 請自行替換成 最新版本git

使用

權限

此庫須要兩個權限:github

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

若是您沒有提早授予,這個庫會自動申請該權限的。app

開始使用(Kotlin)

簡單的鏈式調用示意:框架

FilePickerManager
        .from(this@SampleActivity)
        .forResult(FilePickerManager.REQUEST_CODE)
複製代碼

如今你已經起飛了🛩️...(真的只有兩行)maven

若是使用 Java,那麼僅須要加入一個.INSTANCE 便可使用:ide

FilePickerManager.INSTANCE
                .from(this)
                .forResult(FilePickerManager.REQUEST_CODE);
複製代碼

獲取結果

獲取結果onActivityResult接受消息,而後調用FilePickerManager.obtainData()獲取保存的數據,結果是所選取文件的路徑列表(ArrayList<String>())gradle

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    when (requestCode) {
        FilePickerManager.instance.REQUEST_CODE -> {
            if (resultCode == Activity.RESULT_OK) {
                val list = FilePickerManager.instance.obtainData()
                // do your work
            } else {
                Toast.makeText(this@SampleActivity, "沒有選擇任何東西~", Toast.LENGTH_SHORT).show()
            }
        }
    }
}
複製代碼

更多示例

來翻翻我寫的飛行手冊吧?

或者想看看主題配色

功能 & 特色

  1. 鏈式調用
  2. 默認選中實現
    • 點擊條目(item)無默認實現
    • 點擊CheckBox爲選中
    • 長按條目爲更改選中狀態:選中/取消選中
  3. 內置四種主題配色 + 可自定義配色
    • 查看主題顏色示意圖,而後調用setTheme()傳入自定義主題
  4. 默認實現多種文件類型
    • 實現IFileType接口來實現你的文件類型
    • 實現AbstractFileType抽象類來實現你的文件類型甄別器
  5. 公開文件過濾接口
    • 實現AbstractFileFilter抽象類來定製你本身的文件過濾器,這樣能夠控制文件列表的展現內容
  6. 多種可配置選項
    1. 選中時是否忽略文件夾
    2. 是否顯示隱藏文件夾(以符號.開頭的,視爲隱藏文件或隱藏文件夾)
    3. 可配置導航欄的文本,默認顯示、多選文本、取消選擇文本以及根目錄默認名稱
  7. 公開條目(item)選擇監聽器,可自定義條目被點擊的實現

部分源碼說明

看這裏

Log

Update Log

TODO

TODO


Special Thanks To:

相關文章
相關標籤/搜索