当前位置: 首页 > article >正文

如何获取svg图标中的路径 (漫反射图标效果实现)

如何获取一个 SVG 图标中的路径Path

效果图:

在这里插入图片描述

Step 1 - 引入 svgknife.aar

链接: https://pan.baidu.com/s/1s-Dr_5zmoho5Rwy4txzbaA 提取码: 9669 复制这段内容后打开百度网盘手机App,操作更方便哦

Step 2 - 自定义个View画解析出来的Path

import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.util.AttributeSet
import android.view.View
import androidx.annotation.RawRes
import com.looper.android.svgknife.SvgKnife.SvgPath

class BloomImageView @JvmOverloads constructor(
    context: Context,
    attributeSet: AttributeSet? = null
) : View(context, attributeSet) {

    private val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
        style = Paint.Style.STROKE
        color = Color.RED
        strokeWidth = 4f
        // 核心是设置一个 ShadowLayer
        setShadowLayer(10f, 0f, 0f, Color.RED)
    }

    private val svgKnife = SvgKnife(paint)

    private var bloomIconPaths = mutableListOf<SvgPath>()

    fun setBloomIcon(@RawRes rawRes: Int) {
        bloomIconPaths.clear()
        svgKnife.load(context, rawRes)
        invalidate()
    }

    override fun onDraw(canvas: Canvas) {
        super.onDraw(canvas)

        if (bloomIconPaths.isEmpty()) {
            bloomIconPaths.addAll(svgKnife.getPathsForViewport(width, height))
        }

        bloomIconPaths.forEach {
            canvas.drawPath(it.path, paint)
        }
    }
}

http://www.kler.cn/a/523925.html

相关文章:

  • 高级同步工具解析
  • Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
  • 第十六届蓝桥杯大赛软件赛(编程类)知识点大纲
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)
  • OpenCV:形态学操作总结
  • typescript 简介
  • 算法随笔_29:最大宽度坡_方法3
  • 澳洲硕士毕业论文写作中如何把握主题
  • 笔记本跑大模型尝试
  • 奖励模型:解析大语言模型的关键工具
  • 作業系統:設計與實現-母本
  • 密码学的数学基础1-整数 素数 和 RSA加密
  • vim交换文件的作用
  • 关于2024年
  • 2024年12月GESP C++ 二级考级真题—寻找数字
  • *胡闹厨房*
  • Python爬虫学习第三弹 —— Xpath 页面解析 实现无广百·度
  • 16、Spring 框架基础:开启 Java 企业级开发的新时代
  • 【信息系统项目管理师-选择真题】2009下半年综合知识答案和详解
  • 知识库管理系统提升企业知识价值与工作效率的实践路径分析
  • 朴素贝叶斯模型
  • 为华为云函数增加App认证
  • 【Rust自学】15.0. 智能指针(序):什么是智能指针及Rust智能指针的特性
  • 好用的AI/解析网站
  • 论文阅读的附录(八):Understanding Diffusion Models: A Unified Perspective(五):逐步加噪评分匹配
  • el-button 中icon在文字前和在文字后的写法