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 Xfermode 實戰 實現圓形、圓角圖片Android
- Android 載入網路圖片 以及實現圓角圖片效果Android
- Android自定義View之圖片外形特效——輕鬆實現圓角和圓形圖片AndroidView特效
- 自定義drawable實現圓角圖片
- 自定義view實現圓角圖片View
- ios實現圖片圓角方式小計iOS
- CSS圓形圖片效果CSS
- CircleImageView 圓形圖片頭像實現View
- 分享 用CSS實現無圖片圓角效果CSS
- iOS圖片設定圓角iOS
- PS製作圓角圖片
- android 圓角圖片 處理Android
- Glide與CircleImageView載入圓形圖片的問題IDEView
- 提供一個Glide靈活載入圓角圖片的方法IDE
- CGContextRef處理圓形圖片GCContext
- android圖片處理,讓圖片變成圓形Android
- css如何為圖片設定圓角CSS
- AlamofireImage 使用 – swift載入網路圖片,縮放圖片,生成圓形圖片Swift
- 微信小程式裁剪圖片成圓形微信小程式
- BitmapShader繪製圓形圖片
- BitmapShader 實現圓型圖片
- CSS不用背景圖片實現優惠券樣式反圓角,凹圓角,反向半圓角,並且背景漸變CSS
- iOS圖片設定圓角效能問題iOS
- Android 圓角、圓形 ImageView 實現AndroidView
- 微信小程式之裁剪圖片成圓形微信小程式
- 別用圖片了,CSS遮罩合成實現帶圓角的環形loading動畫CSS遮罩動畫
- 使用 HTML5 Canvas 實現圓形圖片裁剪並上傳HTMLCanvas
- Android 開發:glide圓角,圓形,效率問題AndroidIDE
- Android圓形圖片--自定義控制元件Android控制元件
- 《Android開發卷——設定圓形頭像,Android擷取圓形圖片》Android
- android圓形頭像的選擇和剪下並儲存出圓形圖片Android
- Android中將方形圖片擷取成圓形的兩種實現方式Android
- Android自定義設定圓形圖片控制元件Android控制元件
- Flutter 圓形/圓角頭像Flutter
- PHP合成圖圓角PHP
- Android中圖片圓形設定三種方法介紹Android
- Bitmap擷取中間正方形並取出圓形圖片
- 美圖秀秀怎麼摳圖?美圖秀秀對圖片進行圓形摳圖的教程