首页 > 解决方案 > Android:如何在 Kotlin 中对 Drawable/Bitmap 应用颜色?

问题描述

我想创建一个使用有色图标的快捷方式,所以我不能只为 ImageView 添加一个色调。我是这样做的:

val drawableExample: Drawable
val colorExample: Int

drawable?.colorFilter = PorterDuffColorFilter(colorExample, PorterDuff.Mode.SRC_IN)

val icon: Icon = Icon.createWithBitmap(drawable?.toBitmap(256, 256, null))

如果您的源图像已经是位图,请参阅接受的答案以获取有关如何执行此操作的详细信息。它让我找到了适合我的稍微简单的解决方案。

标签: androidkotlinandroid-drawableandroid-bitmapandroid-icons

解决方案


您可以使用colorFilter

val paint = Paint()
paint.setColorFilter(PorterDuffColorFilter(targetColor, PorterDuff.Mode.SRC_IN))
canvas.drawBitmap(resource, matrix, paint)

推荐阅读