提供一個Glide靈活載入圓角圖片的方法

AiLo發表於2018-07-02

原創文章,轉載請聯絡作者

前言

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靈活載入圓角圖片的方法

  • 只是頂部圓角
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靈活載入圓角圖片的方法

  • 只是左側圓角
Glide.with(this).load("http://p15.qhimg.com/bdm/720_444_0/t01b12dfd7f42342197.jpg")
        .apply(RequestOptions.bitmapTransform(RoundCorner(leftTop = 20f, leftBottom = 20f)))
        .into(img)
複製程式碼

提供一個Glide靈活載入圓角圖片的方法

以上就是一次簡單的展示了,如果你想更加靈活的載入圓角圖片,選擇這個方法沒有錯。程式碼在這裡,傳送門——RoundCorner

結語

以上

提供一個Glide靈活載入圓角圖片的方法

相關文章