rce, listener)
另外还可以通过 setPostProcessor
方法来添加一些自定义的效果,比如最常用的切圆角:
var drawable = ImageDecoder.decodeDrawable(source) { decoder, info, src ->
decoder.setPostProcessor { canvas ->
val path = Path()
path.setFillType(Path.FillType.INVERSE_EVEN_ODD)
val width = canvas.getWidth()
val height = canvas.getHeight()
path.addRoundRect(0, 0, width, height, 20, 20, Path.Direction.CW)
val paint = Paint()
paint.setAntiAlias(true)
paint.setColor(Color.TRANSPARENT)
paint.setXfermode(PorterDuffXfermode(PorterDuff.Mode.SRC))
canvas.drawPath(path, paint)
PixelFormat.TRANSLUCENT
}
}
非常便捷。用法远不仅于此,有了 Canvas 对象,开发者完全可以发挥想象去实现自己想要的炫酷效果。另外如果解码的图片不完整或者包含错误,一般情况下会抛出 DecodeException
,但是如果这个时候通过 setOnPartialImageListener
函数传递一个 OnPartialImageListener
对象,并且在 onPartialImage
函数中返回 true,则图片就会只展示解析成功的一部分而不会抛出 DecodeException
:
var drawable = ImageDecoder.decodeDrawable(source) { decoder, info, src ->
decoder.setOnPartialImageListener { e: ImageDecoder.DecodeException ->
true
}
}
引用
https://developer.android.google.cn/about/versions/pie/android-9.0 https://mp.weixin.qq.com/s/03ospQEdY5HLdYqxEiDX1g https://blog.csdn.net/GenlanFeng/article/details/79496359 https://developer.android.com/about/versions/pie/power https://segmentfault.com/a/1190000015947004
问答
Android - 如何修复权限异常?
相关阅读
Android音频系统
Android 基本常识
Android全局异常处理
【每日课程推荐】机器学习实战!快速入门在线广告业务及CTR相应知识
此文已由作者授权腾讯云+社区发布,更多原文请点击
搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!
海量技术实践经验,尽在云加社区!