首页 > 其他分享 >【Android】代码中将 SVG 图像转换颜色

【Android】代码中将 SVG 图像转换颜色

时间:2024-06-20 14:57:45浏览次数:11  
标签:AndroidSVG SVG 图像 VectorDrawable svg import Android

要在代码中将 SVG 图像转换为黑色,你可以使用一个库,例如 AndroidSVG 或 SVG-Android。以下是一个简单的示例代码,展示了如何通过代码方式将 SVG 图像改为黑色:

// 导入 AndroidSVG 库
import com.caverock.androidsvg.SVG;
import com.caverock.androidsvg.SVGParseException;
import com.caverock.androidsvg.SVGImageView;

// 获取 SVG 图像资源文件
SVG svg = SVG.getFromResource(context, R.raw.your_svg_file);

// 在代码中设置 SVG 图像颜色为黑色
svg.setDocumentColor(Color.BLACK);
svg.setDocumentStrokeColor(Color.BLACK);

// 将 SVG 图像设置到 ImageView 中
SVGImageView svgImageView = convertView.findViewById(R.id.listLogo);
svgImageView.setSVG(svg);

在上述代码中,我们首先导入了 AndroidSVG 库,并使用 getFromResource 方法获取了 SVG 图像资源文件。然后,我们通过调用 setDocumentColor 和 setDocumentStrokeColor 方法将 SVG 图像的颜色设置为黑色。最后,我们将 SVG 图像设置到 ImageView 中。

你需要在项目中导入 AndroidSVG 库,并且需要将你的 SVG 文件放置在 res/raw 目录下,以便使用 getFromResource 方法获取。

#【官方支持的SVG库】
AndroidSVG 库并不是 Android 官方提供的库,因此可能会导致报错。你可以使用 Android 官方支持的 VectorDrawable 对 SVG 图像进行处理。

以下是一个使用 VectorDrawable 对 SVG 图像进行处理的示例代码:

// 导入相关类
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.VectorDrawable;
import androidx.core.content.ContextCompat;

// 获取 SVG 图像资源文件
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.your_svg_file);

// 将 SVG 图像转换为 VectorDrawable
VectorDrawable vectorDrawable = (VectorDrawable) drawable;

// 将 SVG 图像颜色改为黑色
vectorDrawable.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_IN);

// 将处理后的 SVG 图像设置到 ImageView 中
ImageView imageView = convertView.findViewById(R.id.listLogo);
imageView.setImageDrawable(vectorDrawable);

在上面的代码中,我们使用了 Android 官方的 VectorDrawable 类来处理 SVG 图像。首先,我们获取了 SVG 图像资源文件,并将其转换为 VectorDrawable 对象。然后,我们使用 setColorFilter 方法将 SVG 图像的颜色改为黑色。最后,我们将处理后的 SVG 图像设置到 ImageView 中。

标签:AndroidSVG,SVG,图像,VectorDrawable,svg,import,Android
From: https://blog.csdn.net/gao511147456/article/details/139832414

相关文章

  • 【Android】Android Studio版本手动升级到指定版本方法
    前言AndroidStudio本身存在自动升级的功能,但是这个功能使用的时候基本都是要升级到最新版本,但是有时候我们也不想升级到最新版本,是想升级到某一个版本,这个时候,AndroidStudio的自动升级版本的功能就无法使用了,需要我们进行手动升级。自动升级方法点击这里就可升级了,自......
  • 【ASeeker】Android 源码捞针,服务接口扫描神器
    ASeeker是一个Android源码应用系统服务接口扫描工具。项目已开源:☞Github☜如果您也喜欢ASeeker,别忘了给我们点个星。说明ASeeker项目是我们在做虚拟化分身产品(『空壳』)过程中的内部开发工具,目的是为了提升Android系统各版本适配效率。由于产品需支持Android9......
  • Android面试题 之App性能优化的卡顿监控和卡顿优化
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点卡顿优化这里主要介绍卡顿优化方面的布局优化布局优化1、在主线程中,加载SP,或者是缓存加载,JSON解析,可以放到Idelhander2、viewpager的懒加载,用viewpager2替换v......
  • 数字图像处理之二维傅里叶变换
    二维连续傅里叶变换二维离散傅里叶变换二维离散傅里叶变换的性质frombuiltinsimportprint,intimportcv2importnumpyasnpfrommatplotlibimportpyplotasplt#shape:600*600img=cv2.imread('../pic/Fig0438(a)(bld_600by600).tif'......
  • COMPX202 Android Studio
    NZUWI2024S_COMPX202Assignment3:AndroidStudio(Weighting:20%)Duedate:Friday21stJune2024at23:59Submissioninstruction:Asindicatedbelow,youmustworkwithaGitrepositoryanduploadyourworkontheuniversity’sGitLabserver.Youalsonee......
  • Android Java开发异步
    目录AndroidJava开发异步为什么需要异步编程?AsyncTask类异步编程的注意事项总结AndroidJava开发异步在Android应用程序中,异步编程是至关重要的,它可以确保应用的流畅性和响应性。在本文中,我们将探讨Android开发中的异步编程,以及如何使用Java语言进行异步操作。为什......
  • 基于深度学习的图像压缩
    基于深度学习的图像压缩图像压缩是指将图像数据量减小的同时尽量保留其视觉质量的过程。传统的图像压缩方法(如JPEG、PNG等)已经广泛应用,但随着深度学习技术的发展,基于深度学习的图像压缩方法逐渐显现出其优越性。以下是一些关键方法和模型,它们在图像压缩任务中表现出色。深度......
  • 基于深度学习的图像去噪
    基于深度学习的图像去噪图像去噪是从受噪声污染的图像中恢复原始图像的过程。在传统方法中,常用的去噪技术包括均值滤波、中值滤波和维纳滤波等。随着深度学习技术的发展,基于深度学习的图像去噪方法取得了显著进展。深度学习图像去噪方法1.卷积神经网络(CNN)卷积神经网络是图......
  • 【可控图像生成系列论文(一)】MimicBrush 港大、阿里、蚂蚁集团合作论文解读
    背景:考虑到用户的不同需求,图像编辑是一项实用而富有挑战性的任务,其中最困难的部分之一是准确描述编辑后的图像应该是什么样子。创新点:在本文作者提出了一种新的编辑形式,称为模仿编辑,以帮助用户更方便地发挥他们的创造力。具体地说,为了编辑感兴趣的图像区域,用户可以自由地......
  • 【图像加密】基于线性正则变换与菲涅尔变换实现图像加密解密,MSE PSNR附Matlab代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......