天天看点

android动态渐变加圆角,android - Glide v4向图像添加圆角渐变前景 - 堆栈内存溢出...

最后,我找到了解决方案。

如果首先下载图片(从互联网上,我在源位图上绘制圆形渐变)

override fun onResourceReady(resource: Bitmap, model: Any, target: Target, dataSource: DataSource, isFirstResource: Boolean): Boolean {

if (dataSource == DataSource.REMOTE) {

val canvas = Canvas(resource)

canvas.drawBitmap(getBitmap(resource.width, resource.height), 0f, 0f, null)

}

return false

}

资源的四舍五入

private fun getBitmap(width: Int, height: Int): Bitmap {

val drawable = ContextCompat.getDrawable(view.context, R.drawable.image_rounded_foreground_gradient)

val canvas = Canvas()

val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)

canvas.setBitmap(bitmap)

drawable.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight)

drawable.draw(canvas)

return bitmap

}

这是image_rounded_foreground_gradient.xml

android:shape="rectangle">

android:angle="90"

android:endColor="#33000000"

android:startColor="#99000000"

android:type="linear" />

android:bottomLeftRadius="14dp"

android:bottomRightRadius="14dp"

android:topLeftRadius="14dp"

android:topRightRadius="14dp" />

android:width="276dp"

android:height="340dp" />