<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Coil 是一個 Android 圖片載入庫,通過 Kotlin 協程的方式載入圖片。特點如下:
github:https://github.com/coil-kt/coil
檔案:https://coil-kt.github.io/coil/image_loaders/
新增依賴:
implementation("io.coil-kt:coil:1.4.0")
// URL imageView.load("https://www.example.com/image.jpg") // Resource imageView.load(R.drawable.image) // File imageView.load(File("/path/to/image.jpg")) // And more...
可以使用 lambda 語法輕鬆設定請求選項:
imageView.load("https://www.example.com/image.jpg") { crossfade(true) //漸進進出 placeholder(R.drawable.image) //載入中佔點陣圖 transformations(CircleCropTransformation()) //圓形圖 error(R.drawable.image) //載入錯誤佔點陣圖 }
//正常圖片 mBinding.image1.load(imageUrl) //高斯模糊-輕微模糊 mBinding.image11.load(imageUrl) { transformations(BlurTransformation(this@MainActivity, 5f, 10f)) scale(Scale.FILL) } //高斯模式-嚴重模糊 mBinding.image12.load(imageUrl) { transformations(BlurTransformation(this@MainActivity, 20f, 40f)) scale(Scale.FILL) }
效果圖:
//沒有圓角 mBinding.image1.load(imageUrl){ transformations(RoundedCornersTransformation()) scale(Scale.FILL) } //圓角一樣 mBinding.image11.load(imageUrl) { transformations(RoundedCornersTransformation(20f)) scale(Scale.FILL) } //圓角不一樣 mBinding.image12.load(imageUrl) { transformations( RoundedCornersTransformation( topLeft = 20f, topRight = 20f, bottomLeft = 50f, bottomRight = 50f ) ) scale(Scale.FILL) }
效果圖:
佈局檔案
<ImageView android:id="@+id/image1" android:layout_gravity="center" android:layout_width="150dp" android:layout_height="150dp" />
程式碼:
mBinding.image1.load(imageUrl){ transformations(CircleCropTransformation()) scale(Scale.FILL) }
效果圖:
簡單來說就是把彩色圖變成灰色的
mBinding.image1.load(imageUrl) { transformations(GrayscaleTransformation()) }
效果圖:
新增依賴
implementation("io.coil-kt:coil-gif:1.4.0")
官方檔案:https://coil-kt.github.io/coil/gifs/
建立 gif ImageLoader 範例
val imageLoader = ImageLoader.Builder(context) .componentRegistry { if (SDK_INT >= 28) { add(ImageDecoderDecoder(context)) } else { add(GifDecoder()) } } .build() //設定全域性唯一範例 Coil.setImageLoader(imageLoader)
載入 gif 圖片:
mBinding.image1.load(gifUrl)
效果圖如下:
mBinding.image1.load(imageUrl) { listener( onStart = { request -> Log.d("coil-", "onStart") }, onError = { request, throwable -> Log.d("coil-", "onError") }, onCancel = { request -> Log.d("coil-", "onCancel") }, onSuccess = { request, metadata -> Log.d("coil-", "onSuccess") } ) }
val imageUrl = "https://t7.baidu.com/it/u=433422559,1779762296&fm=193&f=GIF" val disposable = mBinding.image1.load(imageUrl) //取消載入 disposable.dispose()
coil 底層是使用 okhttp 作為網路請求工具,可以設定 okHttpClient 範例
val okHttpClient = OkHttpClient.Builder() .cache(CoilUtils.createDefaultCache(this)) .build() val imageLoader = ImageLoader.Builder(this).okHttpClient { okHttpClient }.build() Coil.setImageLoader(imageLoader)
val okHttpClient = OkHttpClient.Builder() .cache(CoilUtils.createDefaultCache(this)) .build() val imageLoader = ImageLoader.Builder(this) .availableMemoryPercentage(0.2) .diskCachePolicy(CachePolicy.ENABLED) //磁碟緩策略 ENABLED、READ_ONLY、WRITE_ONLY、DISABLED .crossfade(true) //淡入淡出 .crossfade(1000) //淡入淡出時間 .okHttpClient { //設定okhttpClient範例 okHttpClient }.build() Coil.setImageLoader(imageLoader)
availableMemoryPercentage 設定用於此 ImageLoader 的記憶體快取和點陣圖池的可用記憶體百分比,範圍:0-1 , 如果為0 , 則禁用記憶體快取。
預設行為:
memoryCachePolicy 記憶體快取策略,有4中策略,預設為 CachePolicy.ENABLED
diskCachePolicy 磁碟快取策略,方式和記憶體策略一直
crossfade 開啟淡入淡出
Coil 是一個單例類
到此這篇關於Android圖片載入框架Coil詳細使用的文章就介紹到這了,更多相關Android圖片載入框架Coil內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45