【问题标题】:Using Vector Drawable by drawing in Canvas通过在 Canvas 中绘图使用 Vector Drawable
【发布时间】:2017-11-20 14:16:48
【问题描述】:
  • 我将一个 SVG 作为 Vector Drawable 导入到我的项目中。
  • 我有我的自定义视图

我知道如何通过代码使用 ImageView 显示矢量可绘制对象 (http://www.androidhive.info/2017/02/android-working-svg-vector-drawables/) ,这在几篇文章中都有描述,但是:

如何使用自定义视图和使用 canvas 的代码绘制矢量? 这有可能做到吗。如果是这样,谁能给我一个提示。

【问题讨论】:

标签: android canvas svg


【解决方案1】:
 In onDraw method

  canvas?.drawBitmap(getVectorBitmap(context, R.drawable.ic_icon), 500f, 500f, canvasPaint)


 create below method in class

  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
}

【讨论】:

    猜你喜欢
    • 2017-10-02
    • 2017-05-04
    • 2017-08-09
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2019-09-17
    相关资源
    最近更新 更多