AndroidQ的檔案操作解決方案

2021-10-10 06:57:49 字數 1773 閱讀 4404

適用於androidq的簡易選擇器。

基於協程的系統檔案選擇,系統拍照,系統裁剪。

uri轉為file的究極解決方案。

新增依賴

allprojects }}

dependencies
新增許可權

選擇器,實現iqfimgloader介面,此舉是為了解決不同專案的使用不同載入庫的問題和減少庫體積。

qfimgloader.getinstance().init(glideloader()) //初始化載入器
2.配置引數,啟動選擇庫。

qfhelper.getinstance()

.isneedgif(false) //是需要gif,預設false

.isneedcamera(true) //是否需要拍照選項,預設true

.setloadnum(30) //設定分頁載入每次載入多少張,預設&建議:30,可根據手機解析度實際情況大小進行調整,注意:該值最少應該保證首次載入充滿全屏,否則無法載入更多

.start(this, 0x001) //第乙個引數:activity或者fragment,第二個引數requestcode

3.獲取選取後的結果

override fun onactivityresult(requestcode: int, resultcode: int, data: intent?) }}

}}

檔案操作

本庫的檔案操作包括系統檔案選擇,系統拍照,系統裁剪三種。都是基於攜程+ghostfragment的方式,因此需要在協程中使用,操作完成後可直接獲取到返回值。

返回值根據泛型型別返回對應型別的結果:uri:檔案的uri對線,file:檔案物件,string:檔案的絕對路徑。

更多使用細節,可見原始碼注釋,寫的很詳細。

1.系統檔案選擇

globalscope.launchui 

img.setimageuri(uri)

}

2.系統拍照

}

3.系統裁剪

globalscope.launchui 

}

如何獲取content://uri格式的uri檔案獲取對應的file物件,一直是日常開發中的痛點,網上各種解決方案都不盡人意,本庫旨在適配各種可能存在的情況,如果還是獲取不到會將該uri寫入沙盒環境,

再獲取對應的file物件,這樣基本能100%保證獲取到uri的file物件。

androidq開始無法訪問非作用域儲存內的檔案(沙盒環境),只能通過uri去訪問檔案,因此訪問外部儲存檔案只能,按照如上方法通過將uri寫入沙盒環境成新檔案,再獲取file。

使用本庫的uritofile擴充套件方法即可,如下:

val file: file? = uri.uritofile(this@mainactivity)
android 10適配要點,作用域儲存

boxing

SwiftUI讀寫檔案基礎操作,解決檔案儲存問題

如何儲存和讀取檔案 如何將class和struct物件儲存到檔案中 如何將儲存到檔案中到資料再讀取回來 當您的應用程式不執行或裝置關閉時,您的應用程式可以將資料儲存到持久儲存在裝置中的檔案中。本章介紹如何以及在何處儲存和檢索檔案。它還討論了可操縱檔案的其他一些方式,例如應用程式如何彼此共享以及與雲共...

Android Q 將獲得大量的隱私保護功能

開發四年只會寫業務 分布式高併發都不會還做程式設計師?谷歌將於今年夏天推出的安卓系統新版本 android q,將帶來大量隱私保護的增強。關於新安卓系統,谷歌已經推送 android q beta 1,相關資訊也可以在博文及 android q 的支援頁面看到。android q 預計在 8 月底正...

Android Q 將獲得大量的隱私保護功能

谷歌將於今年夏天推出的安卓系統新版本 android q,將帶來大量隱私保護的增強。關於新安卓系統,谷歌已經推送 android q beta 1,相關資訊也可以在博文及 android q 的支援頁面看到。android q 預計在 8 月底正式推出。那麼,新系統以隱私為重點的新功能,都有那些呢?...