原創文章,轉載請聯絡作者
前言
Glide
是目前使用的頗為廣泛的圖片載入框架,同時也是Google官方推薦使用的。在圖片處理方面,它提供了很多不錯的功能。
如何才能靈活
圓角圖片顯示,大概是很多APP都會出現的UI設計了,Glide
本身也提供了圓角圖片的載入方式——但也只是簡單的四圓角。實際專案開發中,有時候會遇到,只需要頂部展示圓角,或者只需要左側展示圓角等等。
那麼,本次的方法適用於使用了Glide
作為專案圖片框架的小可愛們,開發者可以對四個圓角進行單獨設定,不僅僅是顯示隱藏,每個圓角的半徑亦是獨立存在的。
使用文件
Glide
有對外暴露一個方法,可以在圖片顯示前,對圖片作轉換處理——就是Transformations
。有關此方面的文字,小可愛們可以看看這篇——Glide - 自定義轉換。本文的RoundCorner
就是繼承了BitmapTransformation
類來實現的。它對外提供兩個建構函式,一個建構函式有四個引數,分別是leftTop:左上角
、rightTop:右上角
、leftBottom:左下角
、rightBottom:右下角
。可以供外部,靈活的去選擇設定哪幾個圓角需要去展示,四個圓角的半徑大小。另一個函式,只提供一個引數就是同時設定四個圓角,當然這是用於四個圓角同時展示且半徑相同的情況下。於此同時,建構函式中只需要傳數值即可,類內部已經做了dp處理。
下面做一下簡單的展示。
- 載入普通圓角圖片
Glide.with(this).load("http://p15.qhimg.com/bdm/720_444_0/t01b12dfd7f42342197.jpg")
.apply(RequestOptions.bitmapTransform(RoundCorner(20f)))
.into(img)
複製程式碼
- 只是頂部圓角
Glide.with(this).load("http://p15.qhimg.com/bdm/720_444_0/t01b12dfd7f42342197.jpg")
.apply(RequestOptions.bitmapTransform(RoundCorner(leftTop = 20f, rightTop = 20f)))
.into(img)
複製程式碼
- 只是左側圓角
Glide.with(this).load("http://p15.qhimg.com/bdm/720_444_0/t01b12dfd7f42342197.jpg")
.apply(RequestOptions.bitmapTransform(RoundCorner(leftTop = 20f, leftBottom = 20f)))
.into(img)
複製程式碼
以上就是一次簡單的展示了,如果你想更加靈活的載入圓角圖片,選擇這個方法沒有錯。程式碼在這裡,傳送門——RoundCorner
結語
以上