我知道如何使用ImageView by代码(http://www.androidhive.info/2017/02/android-working-svg-vector-drawables/)显示可绘制的向量,这在几篇文章中有介绍,但是:
如何使用自定义视图和画布代码绘制向量?这能做到吗。如果是的话谁能给我个提示吗。
发布于 2021-05-17 14:38:01
为此,需要将向量转换为位图,如下所示:
private fun getVectorBitmap(context: Context, drawableId: Int): Bitmap? {
var bitmap: Bitmap? = null
when (val drawable = ContextCompat.getDrawable(context, drawableId)) {
is BitmapDrawable -> {
bitmap = drawable.bitmap
}
is VectorDrawable -> {
bitmap = Bitmap.createBitmap(
drawable.intrinsicWidth,
drawable.intrinsicHeight, Bitmap.Config.ARGB_8888
)
val canvas = Canvas(bitmap)
drawable.setBounds(0, 0, canvas.width, canvas.height)
drawable.draw(canvas)
}
}
return bitmap
} 然后,您可以在画布中使用该向量作为位图,通常如下:
canvas?.drawBitmap(getVectorBitmap(context, R.drawable.ic_icon), 500f, 500f, canvasPaint)发布于 2022-08-18 19:55:36
我将把@pskink的评论变成一个答案,因为我在android领域还没有那么先进,以至于我很快就会明白他的意思。我必须阅读@克里希纳的答案才能理解。这两个人的功劳。下面是:
向量绘图继承了可以直接绘制到画布中的Drawable。首先,使用android上下文从资源中获取可绘制的内容:
val drawable = yourContext.getDrawable(drawableId)然后用它画进画布。下一行告诉可绘制在左上角绘制,大小为32x32像素:
drawable.setBounds(0, 0, 32, 32) 最后把它画到画布上:
drawable.draw(canvas)https://stackoverflow.com/questions/44612353
复制相似问题