android - 通过在 Canvas 中绘图使用 Vector Drawable

标签 android canvas svg

  • 我将一个 SVG 作为 Vector Drawable 导入到我的项目中。
  • 我有我的自定义 View

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

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

    最佳答案

     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
    }
    

    关于android - 通过在 Canvas 中绘图使用 Vector Drawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44612353/

    相关文章:

    android - 当用户在 Android 上按下主页按钮时无法继续录制视频

    android模拟器,在主屏幕上获取小部件

    android - Android Studio 上的多设备 View ?

    javascript - 无法通过jsPDF从Html div制作PDF

    android - 在 Ionic 4 Android 应用程序中打开键盘会将背景图像向上移动

    javascript - 如何使用 jCanvas 动画获取当前旋转 Angular ?

    javascript - 启用完整功能的 Fabric Js

    javascript - 更改不透明度不适用于 Chrome 中的 JS 和 SVG

    SVG animateTransform 相对值?

    javascript - 为门户网站创建交互式 SVG map