Glide實現圓角圖片,以及圓形圖片
Glide很常用,為了避免經常遷移專案導致重寫工具類,記錄下實現圓角圖片的功能以及圓形圖片的功能,
圓角圖片如下:
package com.yyb.mvvmlibrary.widget
import android.content.Context
import android.content.res.Resources
import android.graphics.*
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation
import java.security.MessageDigest
/**
* author : 閆裕波
* e-mail : yyb@zlhopesun.com
* time : 2020/8/7
* desc : 圓角圖示
*/
class GlideRoundTransform @JvmOverloads constructor(
context: Context?,
dp: Int = 4
) : BitmapTransformation() {
override fun transform(
pool: BitmapPool,
toTransform: Bitmap,
outWidth: Int,
outHeight: Int
): Bitmap {
return roundCrop(pool, toTransform)!!
}
override fun updateDiskCacheKey(messageDigest: MessageDigest) {}
companion object {
private var radius = 0f
private fun roundCrop(pool: BitmapPool, source: Bitmap?): Bitmap? {
if (source == null) return null
val result =
pool[source.width, source.height, Bitmap.Config.ARGB_8888]
val canvas = Canvas(result)
val paint = Paint()
paint.shader = BitmapShader(
source,
Shader.TileMode.CLAMP,
Shader.TileMode.CLAMP
)
paint.isAntiAlias = true
val rectF = RectF(
0f, 0f, source.width.toFloat(), source.height
.toFloat()
)
canvas.drawRoundRect(
rectF,
radius,
radius,
paint
)
return result
}
}
/**
* 建構函式
*
* @param context Context
* @param dp 圓角半徑
*/
/**
* 建構函式 預設圓角半徑 4dp
*
* @param context Context
*/
init {
radius =
Resources.getSystem().displayMetrics.density * dp
}
}
工具類如下:
//圓形圖片
fun circleImageUrl(view: ImageView, url: String) {
Glide.with(view.context)
.load(url)
.apply(RequestOptions.bitmapTransform(CircleCrop()))
.transition(DrawableTransitionOptions.withCrossFade(500))
.into(view)
}
//圓角圖片
fun roundedCornerImagUrl(view:ImageView,url:String,radiis:Int){
Glide.with(view.context)
.load(url)
.transform(CenterCrop(),GlideRoundTransform(view.context,radiis))
.transition(DrawableTransitionOptions.withCrossFade(500))
.into(view)
}
相關文章
- Android 載入網路圖片 以及實現圓角圖片效果Android
- Android自定義View之圖片外形特效——輕鬆實現圓角和圓形圖片AndroidView特效
- CSS圓形圖片效果CSS
- PS製作圓角圖片
- 提供一個Glide靈活載入圓角圖片的方法IDE
- CGContextRef處理圓形圖片GCContext
- android圖片處理,讓圖片變成圓形Android
- css如何為圖片設定圓角CSS
- Android 開發:glide圓角,圓形,效率問題AndroidIDE
- 別用圖片了,CSS遮罩合成實現帶圓角的環形loading動畫CSS遮罩動畫
- Android 圓角、圓形 ImageView 實現AndroidView
- CSS不用背景圖片實現優惠券樣式反圓角,凹圓角,反向半圓角,並且背景漸變CSS
- 微信小程式裁剪圖片成圓形微信小程式
- 使用 HTML5 Canvas 實現圓形圖片裁剪並上傳HTMLCanvas
- 微信小程式之裁剪圖片成圓形微信小程式
- Android中圖片圓形設定三種方法介紹Android
- PHP合成圖圓角PHP
- Flutter 圓形/圓角頭像Flutter
- glide圖片載入原理IDE
- 圓形視訊和圓角視訊的一種實現方式
- 美圖秀秀怎麼摳圖?美圖秀秀對圖片進行圓形摳圖的教程
- 淺談Kotlin實戰篇之自定義View圖片圓角簡單應用(一)KotlinView
- Flutter載入圖片與GlideFlutterIDE
- Android圖片快取框架GlideAndroid快取框架IDE
- 通過li-canvas輕鬆實現單圖、多圖、圓角圖繪製,單行文字、多行文字、豎向文字繪製,自動換行,儲存圖片,下載圖片等Canvas
- CSS畫出半圓,四分之一圓,三角等圖形CSS
- 載入本地圖片模糊,Glide載入網路圖片卻很清晰地圖IDE
- 【前端】壓縮圖片以及圖片相關概念前端
- php短視訊原始碼,按鈕的圓角圖示實現PHP原始碼
- Glide 原始碼分析(一):圖片壓縮IDE原始碼
- 筆記-iOS設定圓角方法以及指定位置設圓角筆記iOS
- css實現圖片背景填充的正六邊形CSS
- DDGScreenShot —iOS 圖片裁剪,切圓角,加邊框,你還用cornerRadius,還有更高階的方法iOS
- iOS 實現檢視指定圓角iOS
- 上傳圖片 以及做成縮圖
- 實現簡單的輪播圖(單張圖片、多張圖片)
- CSS實現圖片等比例縮小不變形CSS
- CSS 奇思妙想 | 巧妙的實現帶圓角的三角形CSS