LFilePicker
在 Android 開發中如果需要選擇某個文件,可以直接調取系統的文件管理器進行選擇,但是無法保證各個廠商的手機界面一致,而且解析Uri 還比較繁瑣,如果還需要多選呢?需要文件類型過濾呢?老板說界面丑呢?
那么福利來了,你可以使用LFilePicker,它都支持什么呢?
還算漂亮的界面
各種手機一致的體驗
多種界面風格
自定義標題文字和顏色
文件多選或者單選
文件類型過濾
Fragment啟動
國際化(中英文切換)
文件數量限制
在哪里能找到它呢?Bio Bio Bio
心急的人可以直接根據說明文檔進行使用了,任性的人跟著我繼續走~~~
先看看界面,萬一丑的不行呢?
默認界面
好了還算可以把,和經典的Windows風格類似,先用用看吧。怎么用呢?
基礎用法
1.添加依賴
compile 'com.leon:lfilepickerlibrary:1.3.0'
【P.S.】 話說為了能夠方便的依賴使用可是操碎了心,將項目庫開源到JCenter使用的過程中趟了很多坑,如果感興趣,可以查看文章:新版Bintray下將Android Library 開源到JCenter 的正確姿勢
另外,如果網絡環境有問題無法正常使用compile指令(像我這樣),良心提供 aar 文件下載使用。
下載鏈接:lfilepickerlibrary
【P.S.】 如果不知道 aar 如何使用,請參考文章:Android中 aar 文件的日常使用
2.添加文件讀寫權限
3.打開選擇界面
你可以在Activity中打開:
new LFilePicker()
.withActivity(MainActivity.this)
.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
.start();
也可以在Fragment中打開(同時支持v4包SupportFragment):
new LFilePicker().withSupportFragment(mFragment)
.withRequestCode(Consant.REQUESTCODE_FROM_FRAGMENT)
.withTitle("Open From Fragment")
.start();
4.接收選擇返回值
重寫方法并獲取數據:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == Consant.REQUESTCODE_FROM_ACTIVITY) {
List list = data.getStringArrayListExtra(Constant.RESULT_INFO);
Toast.makeText(getApplicationContext(), "選中了" + list.size() + "個文件", Toast.LENGTH_SHORT).show();
}
}
}
已經以上你已經能夠正常使用了,但是說好的那么多特性呢?接下來,深入一點
自由使用
文件夾和文件圖標太low?換!
new LFilePicker()
.withActivity(this)
.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
.withIconStyle(Constant.ICON_STYLE_YELLOW)
.start();
withIconStyle(mIconType)提供三種風格:
Constant.ICON_STYLE_YELLOW 經典黃(默認風格)
Constant.ICON_STYLE_GREEN 清新綠
Constant.ICON_STYLE_BLUE 柔和藍
清新綠風格
柔和藍風格
選擇界面標題不合適?換!
new LFilePicker()
.withActivity(this)
.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
.withTitle("我的標題")//標題文字
.withTitleColor("#FF99CC")//文字顏色
.start();
標題和文字顏色效果
想要限制單選或者多選?換!
new LFilePicker()
.withActivity(this)
.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
.withMutilyMode(true)
.start();
withMutilyMode(true):true代表多選;false代表單選
多選效果
單選效果
想要限制選擇文件類型?過濾!
new LFilePicker()
.withActivity(this)
.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
.withFileFilter(new String[]{".txt", ".png"})
.start();
默認不過濾效果
過濾后效果
英文怎么搞?已經內置實現!
將手機語言調整為英文后:
英語環境操作
返回圖標不喜歡?換!
new LFilePicker()
.withActivity(this)
.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
.withBackIcon(Constant.BACKICON_STYLEONE)
.start();
withBackIcon() 提供三種風格:
Constant.BACKICON_STYLEONE
Constant.BACKICON_STYLETWO
Constant.BACKICON_STYLETHREE
風格1
風格2
風格3
標題背景顏色不喜歡?換!
new LFilePicker()
.withActivity(this)
.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
.withBackgroundColor("#FF9966")
.start();
背景顏色效果圖
切換選擇路徑?已經包含,隨便選!
路徑選擇效果
結束
基本上能夠滿足日常選擇文件的需求了,開源不易,如果對你有用,歡迎Star給我一個小小的鼓勵!
更多文章歡迎訪問:我的博客