Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
Developer Community or GitHub with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
Created attachment 11032 [details]
Sample SVG button elements
The current trend is switching to vector graphics, but Xamarin.Form is lacking support for it. Currently PNG or bitmaps assets are being dropped from cross platform developement, and for many good reasons. We need SVG support in Xamarin.Forms, and we need it asap.
The following are the main advantages to use vector SVG assets instead of PNG or bitmaps assets in app:
1 - SPACE : Bitmaps are an incredible waste of space and bandwidth. My app dropped from 130 Mb to only 20 Mb after I have redrawn all graphic assets in SVG.
2 - SPEED : Drawing vector graphics is usually faster and leaner than rendering bitmaps, thanks to the GPUs accelerations now very common on all mobile devices
3 - QUALITY : No matter how much you scale, zoom or rotate an svg asset to fit your UI, it will always preserve perfect quality. Bitmaps instead are quickly degraded if any scaling or manipulation is applied.
4 - SCALABILITY : SVG assets doesn't need to be tailored to the dozen of different devices and screens resolutions. They will automatically render at the best possible quality available at the current display dpi. And they will still be even if the user zoom.
5 - REUSABILITY : SVG assets can be easily reused in many version of the application. You don't need to create different graphics assets for the Mobile, Desktop or Web version of an app, because the vector assets can be easily reused in any platform with no changes.
6 - ANIMATIONS : SVG Assets that need animations for visual feedback (buttons pressed effects, switch sliding, menu expansion when touched, etc.) can be animated indipendently from a specific platform animation API, and the animation is consistent on all platform, while taking advantage of the speed of the system to get the best frame rates, thank to not being limited by a fixed number of precalculated bitmap frames.
7 - OPEN STANDARD : SVG is an open standard for vector graphics, and it is handled natively by graphics applications used by professional artists all over the world, like Inkscape, Adobe Illustrator, Sketch, Corel Draw, etc. on all different platforms. You are not locked in some proprietary format for your user interface elements, allowing a seamless interoperability between staff members and between different projects sharing some assets.
Currently the only way to use SVG in a Xamarin.Forms app is to buy an external component in the Xamarin Store (priced $99) that is advertised as having complete SVG 1.1 support.
You can read about it here:
Unfortunately I tested the free trial version with many of my assets (buttons, controls, etc.) saved from Inkscape in plain svg format and they do not work. The component just crash.
You can download the .svg test file of my buttons from here: http://goo.gl/m7TbmM
I've also attached a zip file with the separated button components.
There is also this open source component in the work, supposed to support for SVG vector assets:
Unfortunately it seems an abandoned (or very slow developed) project, still very incomplete.
There is a discussion open about the lack of SVG support in the Xamarin forum:
SVG is becoming more and more used. Illustrator, Inkscape and Sketch are replacing Photoshop in the production pipeline. Even PaintCode in its latest version (2.3) added the option to output in SVG format instead that in C# code format.
The lack of native SVG support is a show stopper for people who are considering writing cross platforms applications in Xamarin.Forms.
Please add support for it. Thanks.
As per my understanding this issue seems to be enhancement so I am going to conform this issue.
Any update on this? My company would be forced to switch to another development platform if this is not implemented soon.
Any news about this ?
+1. This is something that should be part of Forms asap. Most people are tired of using different resolutions of images. I saw two 3rd-party nuget packages, but they both had issues and were unusable.
Please bring this feature of the Android support library (v. 23.2 I think) to Xamarin.Android! This will make our lives much more easier, and also reduce the size of the apk (which is a big plus considering the additional size due to Xamarin packages.)
@adrianKnight I am currently investigating those two nuget packages. What did you find was the problem with them?
It is already $295 not $99 anymore :-)
When is this going to be implemented? Android has supported vector graphics for 3 years now.
Please subscribe to https://github.com/xamarin/Xamarin.Forms/issues/1863 for future updates. Thanks