Exemplo n.º 1
0
        bool TryGetIconRenderer(ElementIcon icon, out SvgRenderer renderer)
        {
            if (icon == null)
            {
                throw new ArgumentNullException("icon");
            }

            if (!rendererCache.TryGetValue(icon.Name, out renderer))
            {
                using (var iconStream = icon.GetStream())
                {
                    if (iconStream == null)
                    {
                        return(false);
                    }
                    var svgDocument = new XmlDocument();
                    svgDocument.XmlResolver = null;
                    svgDocument.Load(iconStream);
                    var element = SvgFactory.LoadFromXML(svgDocument, null);
                    renderer = CreateRenderer(element);
                    rendererCache.Add(icon.Name, renderer);
                }
            }

            return(true);
        }
Exemplo n.º 2
0
        private void button1_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                string       fname = dlg.FileName;
                StreamReader str   = File.OpenText(dlg.FileName);
                tbIn.Text = str.ReadToEnd();

                XmlDocument doc = new XmlDocument();

                doc.Load(fname);

                svgIn.Navigate(new Uri(fname));
                svgIn.Refresh(WebBrowserRefreshOption.Completely);

                _e = SvgFactory.LoadFromXML(doc, null);

                string output = _e.WriteSVGString(true);

                tbOut.Text = output;

                string tempFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "foo.svg");

                StreamWriter tw = new StreamWriter(tempFile, false);

                tw.Write(output);

                tw.Close();

                svgOut.Navigate(new Uri(tempFile));
                svgOut.Refresh(WebBrowserRefreshOption.Completely);
            }
        }
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);
            mapFragment.Map.MyLocationEnabled = true;
            mapFragment.Map.UiSettings.MyLocationButtonEnabled = false;
            mapFragment.Map.MarkerClick += HandleMarkerClick;
            mapFragment.Map.MapClick    += HandleMapClick;
            var oldPosition = PreviousCameraPosition;

            if (oldPosition != null)
            {
                mapFragment.Map.MoveCamera(CameraUpdateFactory.NewCameraPosition(oldPosition));
            }

            // Setup info pane
            var bikeDrawable        = SvgFactory.GetDrawable(Resources, Resource.Raw.bike);
            var lockDrawable        = SvgFactory.GetDrawable(Resources, Resource.Raw.ic_lock);
            var stationLockDrawable = SvgFactory.GetDrawable(Resources, Resource.Raw.station_lock);
            var bikeNumberDrawable  = SvgFactory.GetDrawable(Resources, Resource.Raw.bike_number);
            var clockDrawable       = SvgFactory.GetDrawable(Resources, Resource.Raw.clock);

            starOnDrawable  = SvgFactory.GetDrawable(Resources, Resource.Raw.star_on);
            starOffDrawable = SvgFactory.GetDrawable(Resources, Resource.Raw.star_off);
            pane.FindViewById <ImageView> (Resource.Id.bikeImageView).SetImageDrawable(bikeDrawable);
            pane.FindViewById <ImageView> (Resource.Id.lockImageView).SetImageDrawable(lockDrawable);
            pane.FindViewById <ImageView> (Resource.Id.stationLock).SetImageDrawable(stationLockDrawable);
            pane.FindViewById <ImageView> (Resource.Id.bikeNumberImg).SetImageDrawable(bikeNumberDrawable);
            pane.FindViewById <ImageView> (Resource.Id.clockImg).SetImageDrawable(clockDrawable);
            var starBtn = pane.FindViewById <ImageButton> (Resource.Id.StarButton);

            starBtn.Click += HandleStarButtonChecked;
            streetViewFragment.StreetViewPanorama.UserNavigationEnabled    = false;
            streetViewFragment.StreetViewPanorama.StreetNamesEnabled       = false;
            streetViewFragment.StreetViewPanorama.StreetViewPanoramaClick += HandleMapButtonClick;
        }
Exemplo n.º 4
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            //TheImage has a width constraint (.5*screen) and 2 center constraints (centerx and top=118)

            //Test AlignmentMode.
            //When fillMode is set to Fit and alignmentMode is set to something other than TopLeft (which is the default) and both fillWidthPixel/fillHeightPixel are non zero,
            //an image of fillWidthPixel x fillHeightPixel is created
            //and the svg is drawn inside, fitted either vertically or horizontally, and aligned (only centered currently) on the other dimension.
            //
            //This mimics the "gravity" attribute on Android
            //TheImage.Image = SvgFactory.FromBundle("res:images.logo_auchan", 200, 200, fillMode: SvgFillMode.Fit, alignmentMode: SvgAlignmentMode.Center);

            TheImage.BackgroundColor = UIColor.Green;
            TheImage.ContentMode     = UIViewContentMode.ScaleAspectFit;

            //Test CGImage to UIImage cut
            var bounds = SvgFactory.GetBounds("res:images.cosmo", 0, TheImage.Bounds.Width, SvgFillMode.Fill);
            var image  = SvgFactory.FromBundle("res:images.cosmo", 0, TheImage.Bounds.Width);

            TheImage.Image = image;

            //Test CGImage with button
            TheButton.Style     = UIButton2.ButtonStyle.Action;
            TheButton.LeftImage = "res:images.cosmo";
            //TheButton.IsImageOnly = true;
            TheButton.Text = "The button";
            TheButton.UpdateStyle();
        }
Exemplo n.º 5
0
        private void button1_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                string       fname = dlg.FileName;
                StreamReader str   = File.OpenText(dlg.FileName);
                tbIn.Text = str.ReadToEnd();

                XmlDocument doc = new XmlDocument();

                doc.Load(fname);

                svgIn.SRC = fname;

                _e = SvgFactory.LoadFromXML(doc, null);

                string output = _e.WriteSVGString(true);

                tbOut.Text = output;

                StreamWriter tw = new StreamWriter("c:\\temp\\foo.svg", false);

                tw.Write(output);

                tw.Close();

                svgOut.SRC = "c:\\temp\\foo.svg";
            }
        }
Exemplo n.º 6
0
 private void ProcessSvgFile(string svgFileName)
 {
     tbIn.Text = svgFileName.LoadText();
     RefreshBrowserFrom(svgIn, svgFileName);
     tbOut.Text = SvgFactory.LoadFromXML(svgFileName.LoadXml(), null).WriteSVGString(true);
     File.WriteAllText(_tempFileName, tbOut.Text);
     RefreshBrowserFrom(svgOut, _tempFileName);
 }
Exemplo n.º 7
0
        void SetSvgImage(View baseView, int viewId, int resId)
        {
            var view = baseView.FindViewById <ImageView>(viewId);

            if (view == null)
            {
                return;
            }
            var img = SvgFactory.GetDrawable(Resources, resId);

            view.SetImageDrawable(img);
        }
Exemplo n.º 8
0
        //Load svg string from url
        private async Task <Bitmap> LoadSvgString(string svgUrl)
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("x-crowdscores-api-key", "91e57182c3954dc68a2e184c30271b4a");
                var result = await client.GetAsync(svgUrl);

                var svgString = await result.Content.ReadAsStringAsync();

                var image = SvgFactory.GetBitmap(new StringReader(svgString), 50, 50);
                return(image);
            }
        }
Exemplo n.º 9
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);

            // Default map initialization
            mapFragment.Map.MyLocationEnabled = true;
            mapFragment.Map.MapType           = GoogleMap.MapTypeNormal;
            mapFragment.Map.UiSettings.MyLocationButtonEnabled = false;
            mapFragment.Map.UiSettings.ZoomControlsEnabled     = false;
            mapFragment.Map.UiSettings.CompassEnabled          = false;
            mapFragment.Map.UiSettings.RotateGesturesEnabled   = false;
            mapFragment.Map.UiSettings.TiltGesturesEnabled     = false;
            mapFragment.Map.MoveCamera(CameraUpdateFactory.NewLatLngZoom(
                                           new LatLng(47.60621, -122.332071),
                                           13
                                           ));

            mapFragment.Map.MarkerClick += HandleMarkerClick;
            mapFragment.Map.MapClick    += HandleMapClick;
            var oldPosition = PreviousCameraPosition;

            if (oldPosition != null)
            {
                mapFragment.Map.MoveCamera(CameraUpdateFactory.NewCameraPosition(oldPosition));
            }

            // Setup info pane
            var bikeDrawable                = SvgFactory.GetDrawable(Resources, Resource.Raw.bike);
            var lockDrawable                = SvgFactory.GetDrawable(Resources, Resource.Raw.ic_lock);
            var stationLockDrawable         = SvgFactory.GetDrawable(Resources, Resource.Raw.station_lock);
            var bikeNumberDrawable          = SvgFactory.GetDrawable(Resources, Resource.Raw.bike_number);
            var stationNotInstalledDrawable = SvgFactory.GetDrawable(Resources, Resource.Raw.not_installed);
            var clockDrawable               = SvgFactory.GetDrawable(Resources, Resource.Raw.clock);

            starOnDrawable  = SvgFactory.GetDrawable(Resources, Resource.Raw.star_on);
            starOffDrawable = SvgFactory.GetDrawable(Resources, Resource.Raw.star_off);
            pane.FindViewById <ImageView> (Resource.Id.bikeImageView).SetImageDrawable(bikeDrawable);
            pane.FindViewById <ImageView> (Resource.Id.lockImageView).SetImageDrawable(lockDrawable);
            pane.FindViewById <ImageView> (Resource.Id.stationLock).SetImageDrawable(stationLockDrawable);
            pane.FindViewById <ImageView> (Resource.Id.stationNotInstalled).SetImageDrawable(stationNotInstalledDrawable);
            pane.FindViewById <ImageView> (Resource.Id.bikeNumberImg).SetImageDrawable(bikeNumberDrawable);
            pane.FindViewById <ImageView> (Resource.Id.clockImg).SetImageDrawable(clockDrawable);
            var starBtn = pane.FindViewById <ImageButton> (Resource.Id.StarButton);

            starBtn.Click += HandleStarButtonChecked;
            streetViewFragment.StreetViewPanorama.UserNavigationEnabled    = false;
            streetViewFragment.StreetViewPanorama.StreetNamesEnabled       = false;
            streetViewFragment.StreetViewPanorama.StreetViewPanoramaClick += HandleMapButtonClick;
        }
Exemplo n.º 10
0
        void LoadImageTest(int rawID)
        {
            foreach (var drawableID in drawableViewIds)
            {
                var drawable = SvgFactory.GetDrawable(Resources, rawID);
                var v        = FindViewById <ImageView> (drawableID);
                v.SetImageDrawable(drawable);
            }

            var bitmap1 = SvgFactory.GetBitmap(Resources, rawID,
                                               width: 40,
                                               height: 69);
            var bitmap2 = SvgFactory.GetBitmap(Resources, rawID,
                                               width: 98,
                                               height: 98);
            var bitmap3 = SvgFactory.GetBitmap(Resources, rawID,
                                               width: 47,
                                               height: 32);

            FindViewById <ImageView> (Resource.Id.bitmap1).SetImageBitmap(bitmap1);
            FindViewById <ImageView> (Resource.Id.bitmap2).SetImageBitmap(bitmap2);
            FindViewById <ImageView> (Resource.Id.bitmap3).SetImageBitmap(bitmap3);
        }
Exemplo n.º 11
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);

            view.SetBackgroundDrawable(AndroidExtensions.DefaultBackground);

            mapFragment?.GetMapAsync(this);



            // Setup info pane
            SetSvgImage(pane, Resource.Id.bikeImageView, Resource.Raw.bike);
            SetSvgImage(pane, Resource.Id.lockImageView, Resource.Raw.ic_lock);
            SetSvgImage(pane, Resource.Id.stationLock, Resource.Raw.station_lock);
            SetSvgImage(pane, Resource.Id.bikeNumberImg, Resource.Raw.bike_number);
            SetSvgImage(pane, Resource.Id.clockImg, Resource.Raw.clock);
            SetSvgImage(pane, Resource.Id.stationNotInstalled, Resource.Raw.not_installed);
            starOnDrawable  = SvgFactory.GetDrawable(Resources, Resource.Raw.star_on);
            starOffDrawable = SvgFactory.GetDrawable(Resources, Resource.Raw.star_off);
            var starBtn = pane.FindViewById <ImageButton>(Resource.Id.StarButton);

            starBtn.Click += HandleStarButtonChecked;
            streetViewFragment?.GetStreetViewPanoramaAsync(this);
        }
Exemplo n.º 12
0
 public RentalsAdapter(Context context)
 {
     this.context          = context;
     bikeSeparatorDrawable = SvgFactory.GetDrawable(context.Resources,
                                                    Resource.Raw.bike_separator);
 }
Exemplo n.º 13
0
        private void button2_Click(object sender, System.EventArgs e)
        {
            var root = new SvgSvgElement("4in", "4in", "-10,-10 250,250");

            //adding multiple children

            root.AddChildren(
                new SvgRectElement(5, 5, 5, 5),
                new SvgEllipseElement(20, 20, 8, 12)
            {
                Style = "fill:yellow;stroke:red"
            },

                new SvgAElement("https://github.com/managed-commons/SvgNet").AddChildren(
                    new SvgTextElement("Textastic!", 30, 20)
            {
                Style = "fill:midnightblue;stroke:navy;stroke-width:1px;font-size:30px;font-family:Calibri"
            })
                );

            //group and path

            var grp = new SvgGroupElement("green_group")
            {
                Style = "fill:green;stroke:black;"
            };

            grp.AddChild(new SvgRectElement(30, 30, 5, 20));

            var ell = new SvgEllipseElement
            {
                CX = 50,
                CY = 50,
                RX = 10,
                RY = 20
            };

            var pathy = new SvgPathElement
            {
                D     = "M 20,80 C 20,90 30,80 70,100 C 70,100 40,60 50,60 z",
                Style = ell.Style
            };

            root.AddChild(grp);

            //cloning and style arithmetic

            grp.AddChildren(ell, pathy);

            grp.Style.Set("fill", "blue");

            var grp2 = (SvgGroupElement)SvgFactory.CloneElement(grp);

            grp2.Id = "cloned_red_group";

            grp2.Style.Set("fill", "red");

            grp2.Style += "opacity:0.5";

            grp2.Transform = "scale (1.2, 1.2)  translate(10)";

            root.AddChild(grp2);

            //output

            string s = root.WriteSVGString(true);

            tbOut.Text = s;

            string tempFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "foo.svg");

            using (var tw = new StreamWriter(tempFile, false))
                tw.Write(s);

            svgOut.Navigate(new Uri(tempFile));
            svgOut.Refresh(WebBrowserRefreshOption.Completely);
        }
Exemplo n.º 14
0
        private static bool AddImages(Context context, SpannableString spannable)
        {
            string pattern = "\\Q[img src=\\E([a-zA-Z0-9_]+?)\\Q/]\\E";

            //MatchCollection m = Regex.Matches(spannable, pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            //foreach (Match match in m)
            //    Console.WriteLine("{0} (duplicates '{1}') at position {2}", match.Value, match.Groups[1].Value, match.Index);


            Java.Util.Regex.Pattern refImg = Java.Util.Regex.Pattern.Compile(pattern);
            bool hasChanges = false;

            Matcher matcher = refImg.Matcher(spannable);

            while (matcher.Find())
            {
                bool set = true;
                foreach (ImageSpan span in spannable.GetSpans(matcher.Start(), matcher.End(), Java.Lang.Class.FromType(typeof(ImageSpan))))
                {
                    if (spannable.GetSpanStart(span) >= matcher.Start() && spannable.GetSpanEnd(span) <= matcher.End())
                    {
                        spannable.RemoveSpan(span);
                    }
                    else
                    {
                        set = false;
                        break;
                    }
                }

                string resname = spannable.SubSequence(matcher.Start(1), matcher.End(1)).ToString().Trim();
                //int id = context.Resources.GetIdentifier(resname, "drawable", context.PackageName);
                if (set)
                {
                    hasChanges = true;

                    int  identifier = context.Resources.GetIdentifier("modezoneedit", "drawable", context.PackageName);
                    bool isSvg = true; Bitmap bitmap2 = null;
                    if (isSvg)
                    {
                        SvgBitmapDrawable oo = SvgFactory.GetDrawable(context.Resources, identifier);
                        //oo.Mutate().SetColorFilter(0xffff0000, Android.Graphics.PorterDuff.Mode.Multiply);
                        Bitmap bitmap = Bitmap.CreateBitmap(oo.Picture.Width, oo.Picture.Height, Bitmap.Config.Argb8888);
                        Canvas canvas = new Canvas(bitmap);
                        canvas.DrawPicture(oo.Picture);
                        bitmap2 = Bitmap.CreateScaledBitmap(bitmap, (int)(bitmap.Width * 0.3), (int)(bitmap.Height * 0.3), false);
                    }
                    else
                    {
                        bitmap2 = BitmapFactory.DecodeResource(context.Resources, identifier);
                        bitmap2 = Bitmap.CreateScaledBitmap(bitmap2, (int)(bitmap2.Width * 0.3), (int)(bitmap2.Height * 0.3), false);
                    }

                    ImageSpan span = new ImageSpan(context, bitmap2);
                    spannable.SetSpan(span, matcher.Start(), matcher.End(), SpanTypes.ExclusiveExclusive);

                    /*spannable.SetSpan(new ImageSpan(context, id),
                     * matcher.Start(),
                     * matcher.End(),
                     * SpanTypes.ExclusiveExclusive
                     * );*/
                }
                //if (isLastPoint) canvas.DrawColor(Color.Green, PorterDuff.Mode.SrcAtop);

                //Bitmap b = BitmapFactory.DecodeResource(context.Resources, Resource.Drawable.ModeZoneEdit);
            }
            return(hasChanges);
        }
Exemplo n.º 15
0
        private void button2_Click(object sender, System.EventArgs e)
        {
            SvgSvgElement root = new SvgSvgElement("4in", "4in", "0,0 100,100");


            //adding multiple children

            root.AddChildren(
                new SvgRectElement(5, 5, 5, 5),
                new SvgEllipseElement(30, 10, 8, 12),
                new SvgTextElement("Textastic!", 3, 20)
                );


            //group and path

            SvgGroupElement grp = new SvgGroupElement("green_group");

            grp.Style = "fill:green;stroke:black;";

            SvgEllipseElement ell = new SvgEllipseElement();

            ell.CX = 50;
            ell.CY = 50;
            ell.RX = 10;
            ell.RY = 20;

            SvgPathElement pathy = new SvgPathElement();

            pathy.D     = "M 20,80 C 20,90 30,80 70,100 C 70,100 40,60 50,60 z";
            pathy.Style = ell.Style;

            root.AddChild(grp);


            //cloning and style arithmetic

            grp.AddChildren(ell, pathy);

            grp.Style.Set("fill", "blue");

            SvgGroupElement grp2 = (SvgGroupElement)SvgFactory.CloneElement(grp);

            grp2.Id = "cloned_red_group";

            grp2.Style.Set("fill", "red");

            grp2.Style += "opacity:0.5";

            grp2.Transform = "scale (1.2, 1.2)  translate(10)";

            root.AddChild(grp2);


            //output

            string s = root.WriteSVGString(true);

            tbOut.Text = s;

            StreamWriter tw = new StreamWriter("c:\\temp\\foo.svg", false);

            tw.Write(s);

            tw.Close();

            svgOut.SRC = "c:\\temp\\foo.svg";
        }
Exemplo n.º 16
0
 public Bitmap GetClosedPin(int width, int height)
 {
     return(closedPin ?? (closedPin = SvgFactory.GetBitmap(context.Resources, Resource.Raw.pin_locked, width, height)));
 }
Exemplo n.º 17
0
 public Bitmap GetNonInstalledPin(int width, int height)
 {
     return(notInstalledPin ?? (notInstalledPin = SvgFactory.GetBitmap(context.Resources, Resource.Raw.pin_not_installed, width, height)));
 }
Exemplo n.º 18
0
        private void button2_Click(object sender, System.EventArgs e)
        {
            SvgSvgElement root = new SvgSvgElement("4in", "4in", "0,0 100,100");

            //adding multiple children

            root.AddChildren(
                new SvgRectElement(5, 5, 5, 5),
                new SvgEllipseElement(30, 10, 8, 12),
                new SvgTextElement("Textastic!", 3, 20)
                );

            //group and path

            SvgGroupElement grp = new SvgGroupElement("green_group")
            {
                Style = "fill:green;stroke:black;"
            };

            SvgEllipseElement ell = new SvgEllipseElement {
                CX = 50,
                CY = 50,
                RX = 10,
                RY = 20
            };

            SvgPathElement pathy = new SvgPathElement {
                D     = "M 20,80 C 20,90 30,80 70,100 C 70,100 40,60 50,60 z",
                Style = ell.Style
            };

            root.AddChild(grp);

            //cloning and style arithmetic

            grp.AddChildren(ell, pathy);

            grp.Style.Set("fill", "blue");

            SvgGroupElement grp2 = (SvgGroupElement)SvgFactory.CloneElement(grp);

            grp2.Id = "cloned_red_group";

            grp2.Style.Set("fill", "red");

            grp2.Style += "opacity:0.5";

            grp2.Transform = "scale (1.2, 1.2)  translate(10)";

            root.AddChild(grp2);

            //output

            string s = root.WriteSVGString(true);

            tbOut.Text = s;

            string tempFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "foo.svg");

            StreamWriter tw = new StreamWriter(tempFile, false);

            tw.Write(s);

            tw.Close();

            svgOut.Navigate(new Uri(tempFile));
            svgOut.Refresh(WebBrowserRefreshOption.Completely);
        }