IDE plugin to converting SVG to VectorDrawable

Overview

SVG2VectorDrawable Build Status

Android Arsenal

README: 中文 | English

DEPRECATED

Please using the Asset Studio instead. 20201103111801.jpg

简介

Intellij Platform插件,通过其可以完成从svg文件到Android VectorDrawable的自动化转换。

特性

  • 图形化界面
  • 自动解析当前Project,如果当前Project为Android Project,则会列出所有Module
  • 支持将SVG解析为多种dpi的VectorDrawable
  • 支持SVG的transform属性
  • 支持批量转换指定目录内的所有svg文件

属性对应表

SVG Attribute VectorDrawable Attribute
id android:name
fill android:fillColor
fill-opacity android:fillAlpha
fill-rule android:fillType
stroke android:strokeColor
stroke-opacity android:strokeAlpha
stroke-width android:strokeWidth
stroke-linejoin android:strokeLineJoin
stroke-miterlimit android:strokeMiterLimit
stroke-linecap android:lineCap
transform android:{scaleX/Y | translateX/Y | pivotX/Y | rotation}

使用

安装

本插件支持Intellij IDEA和Android Studio,需要JDK版本1.6+

通过本地jar文件安装

从此处 下载svg2android.zip 文件,在IDE中打开 Preferences -> Plugins -> Install plugin from disk... 选择 svg2android.zip ,添加后重启IDE

通过插件仓库在线安装

在IDE中打开Preferences -> Plugins -> Browse Repositories,搜索SVG2VectorDrawable,安装插件并重启IDE

界面

img1

用法

GUI模式

settings

  • 点击···按钮,选择一个SVG源文件,或勾选batch,并点击···选择一个包含svg文件的目录
  • 在第一个下拉选框中选中要生成xml文件的module,在第二个选框中选择生成的VectorDrawable的分辨率
  • 填入生成xml文件的文件名,默认为vector_drawable_ + SVG文件的名称
  • 点击Generate,插件会生成出VectorDrawable并在编辑器中打开(默认覆盖同名文件)

注意:在module中已存在的分辨率目录为黑色字体,未存在的目录为灰色字体,如果选中不存在的目录,则插件会自动生成该目录。

Generate模式

settings

  • 在任意代码编辑器窗口中呼出Generate菜单(例如macOS默认是control+enter)
  • 选择VectorDrawable,插件会将指定目录中的所有svg文件转换到当前module的drawable目录中(默认跳过同名文件)

设置项

打开Prefreences -> Other Settings,选择SVG to VectorDrawable,打开设置面板

settings

  • SVG source: 设置存放svg文件的默认目录,在Generate模式中将会从该目录获取svg文件
  • Xml prefix: 设置生成的xml文件名的默认前缀
  • Auto check for update: 勾选后在每次打开GUI的时候会进行自动版本更新检查操作
  • Override the existing xml file when generating: 勾选后在生成过程中将会覆盖已存在的同名文件

更新日志

1.5

支持fill-rule属性(该属性目前仅被API 24+支持)
添加Generate模式
支持批量生成

1.4.2

针对Sketch导出的SVG文件做了优化

1.4.1

代码优化,更换新Icon

1.4.0

支持“transform”属性

Early

创建项目,bug fix

欢迎提交Issue和PR


Reference: svg2vectordrawable

Comments
  • android studio 4.1.1 svg转换xml失败

    android studio 4.1.1 svg转换xml失败

    java.lang.AssertionError: Wrong line separators: '...\n</vector>\r\n' at offset 1865 at com.intellij.openapi.util.text.StringUtil.assertValidSeparators(StringUtil.java:2811) at com.intellij.openapi.editor.impl.DocumentImpl.assertValidSeparators(DocumentImpl.java:689) at com.intellij.openapi.editor.impl.DocumentImpl.replaceString(DocumentImpl.java:605) at com.intellij.openapi.editor.impl.DocumentImpl.lambda$setText$2(DocumentImpl.java:1060) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:212) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:178) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:168) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:154) at com.intellij.openapi.editor.impl.DocumentImpl.setText(DocumentImpl.java:1065) at com.intellij.psi.impl.file.PsiDirectoryImpl.add(PsiDirectoryImpl.java:411) at com.intellij.psi.impl.file.PsiJavaDirectoryImpl.add(PsiJavaDirectoryImpl.java:65) at com.moxun.s2v.Transformer$1$1.run(Transformer.java:235) at com.intellij.openapi.application.RunResult.run(RunResult.java:35) at com.intellij.openapi.command.WriteCommandAction.lambda$null$1(WriteCommandAction.java:248) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:976) at com.intellij.openapi.command.WriteCommandAction.lambda$performWriteCommandAction$2(WriteCommandAction.java:247) at com.intellij.openapi.command.WriteCommandAction.lambda$doExecuteCommand$4(WriteCommandAction.java:305) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:220) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:188) at com.intellij.openapi.command.WriteCommandAction.doExecuteCommand(WriteCommandAction.java:307) at com.intellij.openapi.command.WriteCommandAction.performWriteCommandAction(WriteCommandAction.java:246) at com.intellij.openapi.command.WriteCommandAction.execute(WriteCommandAction.java:227) at com.moxun.s2v.Transformer$1.run(Transformer.java:254) at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:201) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831) at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:310) at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:80) at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:128) at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46) at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:184) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764) at java.awt.EventQueue.access$500(EventQueue.java:98) at java.awt.EventQueue$3.run(EventQueue.java:715) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:734) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:847) at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:496) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    opened by wanghangyu14 7
  • Android Studio 3.0 warning

    Android Studio 3.0 warning

    Getting Use 0.566 instead of .566 to avoid crashes on some devices warning (error) on below xml

    <path android:fillColor="#FFFFFF"
             android:fillType="evenOdd"
             android:pathData="M.566 29.735C-0.003 14.697 13.134.801 28.146.62c7.652-.654 ...
    
    enhancement 
    opened by jemshit 6
  • Improve format of generated resource

    Improve format of generated resource

    Two things that can be improved

    1. OrderOfAttributes - pathData attribute can sometimes take be long so I thing it should be placed at the end of attributes list (now for ex it's difficult to change color without scrolling all the way right) orderofattributes

    2. PreformatedCode (each attribute in new line) preformatedcode

    enhancement 
    opened by igorwojda 6
  • 在AS3.6 上启动崩了

    在AS3.6 上启动崩了

    这个工具非常棒,请大佬尽快修复(抱拳了

    java.lang.NullPointerException
    	at com.moxun.s2v.utils.CommonUtil.loadMetaInf(CommonUtil.java:56)
    	at com.moxun.s2v.GUI.<init>(GUI.java:48)
    	at com.moxun.s2v.S2V.actionPerformed(S2V.java:14)
    	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:265)
    	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:282)
    	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:256)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:194)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:157)
    	at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:434)
    	at java.awt.Component.processEvent(Component.java:6315)
    	at java.awt.Container.processEvent(Container.java:2239)
    	at java.awt.Component.dispatchEventImpl(Component.java:4899)
    	at java.awt.Container.dispatchEventImpl(Container.java:2297)
    	at java.awt.Component.dispatchEvent(Component.java:4721)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    	at java.awt.Container.dispatchEventImpl(Container.java:2283)
    	at java.awt.Window.dispatchEventImpl(Window.java:2746)
    	at java.awt.Component.dispatchEvent(Component.java:4721)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
    	at java.awt.EventQueue.access$500(EventQueue.java:98)
    	at java.awt.EventQueue$3.run(EventQueue.java:715)
    	at java.awt.EventQueue$3.run(EventQueue.java:709)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    	at java.awt.EventQueue$4.run(EventQueue.java:739)
    	at java.awt.EventQueue$4.run(EventQueue.java:737)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
    	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:878)
    	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:823)
    	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:466)
    	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:704)
    	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:465)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    
    opened by woxingxiao 5
  • on window 10 android studio 2.2.1

    on window 10 android studio 2.2.1

    17:21:48 Plugin Error: SVG2VectorDrawable threw an uncaught StringIndexOutOfBoundsException. Disable Plugin 17:21:48 StringIndexOutOfBoundsException: String index out of range: -1

    bug 
    opened by adr0425 4
  • it's not work. please fixed plugin..

    it's not work. please fixed plugin..

    hi

    installed plugin my Android studio. after i try convert SVG file. i clicked "Generate" button when, "Event log" window show error message :

    Plugin Error: SVG2VectorDrawable threw an uncaught NoSuchMethodError. Disable Plugin NoSuchMethodError: com.intellij.ide.fileTemplates.FileTemplateManager.findInternalTemplate(Ljava/lang/String;)Lcom/intellij/ide/fileTemplates/FileTemplate;

    so i report issue for you.

    please fixed bug. thank you.

    bug 
    opened by lmklmk99 4
  • Converting from polygon with points

    Converting from polygon with points

    There is a bug where if converting from a polygon in the form <polygon points="0 0 0 100 100 100 100 0 0 0" fill="#0000FF"/> results in an invalid vector path of the form <path android:fillColor="#0000FF" android:pathData="M0 L0 L0 L100 L100 L100 L100 L0 L0 L0 z" /> where it should be <path android:fillColor="#0000FF" android:pathData="M0,0 L0,100 L100,100 L100,0 L0,0 z" />

    opened by rbloomdaleIXL 3
  • Plugin Error: SVG2VectorDrawable threw an uncaught NumberFormatException

    Plugin Error: SVG2VectorDrawable threw an uncaught NumberFormatException

    See stacktrace:

    For input string: "199.66" java.lang.NumberFormatException: For input string: "199.66" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:766) at com.moxun.s2v.utils.SVGAttrParser.getValue(SVGAttrParser.java:101) at com.moxun.s2v.utils.SVGAttrParser.getPathData(SVGAttrParser.java:71) at com.moxun.s2v.Transformer.parseShapeNode(Transformer.java:150) at com.moxun.s2v.Transformer.transforming(Transformer.java:77) at com.moxun.s2v.GUI$6.actionPerformed(GUI.java:131) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6533) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:857) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:654) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:386) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    opened by matheusjardimb 3
  • Generate Error

    Generate Error

    15:01:24 Plugin Error: SVG2VectorDrawable threw an uncaught NullPointerException. Disable Plugin 15:01:24 NullPointerException: null

    Android studio 2.1 preview 4

    bug 
    opened by crazyMing 3
  • How to access the plugin, what does

    How to access the plugin, what does "Click ..." means in README?

    what does "Click ..." means in README? Click ... where? There's no ... anywhere. Is it in menu, in project tree? I can't find anywhere. 🤷‍♂

    opened by romanr 2
  • Output name of file is incorrect in some cases (filenames with numbers?)

    Output name of file is incorrect in some cases (filenames with numbers?)

    I used your tool to batch process a bunch of SVGs. A few of the SVGs were output with extra underscores in their filenames.

    ki-a11y.svg was output as vector_drawable_ki_a__y.svg ki-a11y-f.svg was output as vector_drawable_ki_a__y_f.svg

    So, your tool definitely didn't like using 11 in the filename...

    opened by chris-dura 1
  • java.lang.NumberFormatException: multiple points

    java.lang.NumberFormatException: multiple points

    multiple points
    java.lang.NumberFormatException: multiple points
    	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1914)
    	at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
    	at java.lang.Float.parseFloat(Float.java:451)
    	at java.lang.Float.valueOf(Float.java:416)
    	at com.moxun.s2v.utils.TranslateReduceUtil.reduce(TranslateReduceUtil.java:37)
    	at com.moxun.s2v.SVGParser.reduceAttrs(SVGParser.java:256)
    	at com.moxun.s2v.SVGParser.trim(SVGParser.java:244)
    	at com.moxun.s2v.SVGParser.getGroups(SVGParser.java:89)
    	at com.moxun.s2v.SVGParser.hasGroupTag(SVGParser.java:194)
    	at com.moxun.s2v.Transformer.transforming(Transformer.java:70)
    	at com.moxun.s2v.GUI$6.actionPerformed(GUI.java:160)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    	at java.awt.Component.processMouseEvent(Component.java:6541)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    	at java.awt.Component.processEvent(Component.java:6306)
    	at java.awt.Container.processEvent(Container.java:2237)
    	at java.awt.Component.dispatchEventImpl(Component.java:4897)
    	at java.awt.Container.dispatchEventImpl(Container.java:2295)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    	at java.awt.Container.dispatchEventImpl(Container.java:2281)
    	at java.awt.Window.dispatchEventImpl(Window.java:2746)
    	at java.awt.Component.dispatchEvent(Component.java:4719)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    	at java.awt.EventQueue.access$500(EventQueue.java:98)
    	at java.awt.EventQueue$3.run(EventQueue.java:715)
    	at java.awt.EventQueue$3.run(EventQueue.java:709)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    	at java.awt.EventQueue$4.run(EventQueue.java:737)
    	at java.awt.EventQueue$4.run(EventQueue.java:735)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822)
    	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:646)
    	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    

    Android Studio 3.1.2 Build #AI-173.4720617, built on April 14, 2018 JRE: 1.8.0_152-release-1024-b01 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Linux 4.4.0-127-generic

    Trying to open multiple svg files, gave folder to tool with batch check-box on.

    opened by sreejithbnaick 0
  • Request: add combobox in dialog: origin density

    Request: add combobox in dialog: origin density

    Since the designer work in some pixel density, the SVG that is generated is in a size that fits it. This is a problem, because the output VectorDrawable will be in a different size than what it was supposed to be.

    Please allow to choose the origin density of the SVG in this dialog: image

    opened by AndroidDeveloperLB 0
Releases(1.9.0)
PaintableVectorView enables to change color of paths/groups in Vector Drawable (SVG)

PaintableVectorView PaintableVectorView enables to change color of paths/groups in Vector Drawable (SVG) Demo Car icon made by Prosymbols from www.fla

Jakub Anioła 164 Dec 16, 2022
This a demo application with animated SVG animation of Smiley

Animated-Smiley-Rating Animated Customer feedback and rating UI ?? License Copyright 2021 Aiman Muzafar Licensed under the Apache License, Version 2.0

Aiman Muzafar 12 Aug 12, 2021
A Flutter plugin thats support share files to social media like TikTok, Instagram, Facebook, WhatsApp, Telegram and more others...

Social Share Kit A Flutter plugin that's support share files to social media like Tiktok, Instagram, Facebook, WhatsApp, Telegram and more. This plugi

Kaique Gazola 2 Sep 2, 2022
SVG to Android VectorDrawable XML resource file

svg2android [Deprecated - use official Vector Asset Studio directly from Android Studio] Convert SVG to Android VectorDrawable XML resource file. Extr

INLOOPX 1.7k Dec 29, 2022
SVG to Android VectorDrawable XML resource file

svg2android [Deprecated - use official Vector Asset Studio directly from Android Studio] Convert SVG to Android VectorDrawable XML resource file. Extr

INLOOPX 1.7k Dec 29, 2022
Kotlin compiler plugin for converting suspend functions to platform-compatible functions

Kotlin suspend transform compiler plugin Summary Kotlin compiler plugin for generating platform-compatible functions for suspend functions. JVM class

ForteScarlet 5 Oct 12, 2022
K6-intellij-plugin - IntelliJ-based Plugin to run k6 tests locally or in the k6 Cloud from your IntelliJ IDE

IntelliJ-based Plugin to run k6 tests locally or in the k6 Cloud from your Intel

Mikhail Bolotov 8 Jan 2, 2023
A support library for VectorDrawable and AnimatedVectorDrawable classes introduced in Lollipop

vector-compat A support library for VectorDrawable and AnimatedVectorDrawable introduced in Lollipop with fully backwards compatible tint support (api

Wael N 1.2k Nov 29, 2022
[Deprecated] AKA VectorDrawableCompat: A 7+ backport of VectorDrawable

###@Deprecated Unfortunatenly this library is no longer maintained, we encourage you to use first party VectorDrawableCompat coming soon to support li

Telly 658 Oct 9, 2022
recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

Sebastian Kaspari 565 Jan 2, 2023
An application for converting between units

currency-converter This is an Android Based Application for helping users convert between currencies. The project is part of our Android Jam Series La

MMU CIT CLUB 2 Nov 5, 2021
A simple project used for converting currencies

MyCurrencyConverter A simple project used for converting currencies. This project is divided into 2 parts (branches): master - without Dagger Hilt dev

null 0 Nov 5, 2021
An application for converting between units

currency-converter This is an Android Based Application for helping users convert between currencies. The project is part of our Android Jam Series La

MMU CIT CLUB 2 Nov 5, 2021
This plugin allows creating or editing Excalidraw virtual whiteboard within the IDE.

Excalidraw Integration for Jetbrains IDEs This plugin allows creating or editing Excalidraw virtual whiteboard within the IDE. Installation Using IDE

Brice Dutheil 46 Dec 11, 2022
✈️ IDE plugin for the IntelliJ platform which adds GitHub Copilot support. (VERY WIP)

JetBrains Copilot GitHub Copilot support for the IntellIJ Platform. Installation Download the latest release. Select the Install Plugin from Disk opti

Koding 155 Dec 10, 2022
A plugin for Jetbrains IDE, Your code is powerful, unleash it like playing osu!

Osu! Mode A plugin for Jetbrains IDE, Your code is powerful, unleash it like playing osu! Demo 2021-10-15.18-50-30.mp4 Bilibili Feature open project /

Nthily 8 Sep 8, 2022
Advent of code 2021 (unofficial) in Kotlin for Educational Plugin on Jetbrains IntelliJ IDE.

Kotlin Advent of Code 2021 (unofficial) DISCLAIMER: I am not affiliated with the official Advent of code event or website. To open this course, you ne

null 1 Dec 10, 2021
A Android Web IDE supports code auto-completion and highlight, plugin (Supports Html, Css, JS, Json, Php etc)

WebDevOps A Android Web IDE supports code auto-completion and highlight, plugin (Supports Html, Css, JS, Json, Php etc) Join us QQ group number: 10314

SuMuCheng 22 Jan 3, 2023
Svg-to-compose-intellij - A simple Android Studio plugin to generate Jetpack Compose ImageVector icons

svg-to-compose-intellij A simple Android Studio plugin to generate Jetpack Compo

Pavel Shurmilov 21 Dec 15, 2022
Android Library to make it easy to create CodeEditor or IDE that support any languages and themes

CodeView Android Library to make it easy to create your CodeEditor or IDE for any programming language even for your programming language, just config

Amr Hesham 294 Jan 6, 2023