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); }
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; }
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(); }
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"; } }
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); }
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); }
//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); } }
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; }
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); }
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); }
public RentalsAdapter(Context context) { this.context = context; bikeSeparatorDrawable = SvgFactory.GetDrawable(context.Resources, Resource.Raw.bike_separator); }
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); }
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); }
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"; }
public Bitmap GetClosedPin(int width, int height) { return(closedPin ?? (closedPin = SvgFactory.GetBitmap(context.Resources, Resource.Raw.pin_locked, width, height))); }
public Bitmap GetNonInstalledPin(int width, int height) { return(notInstalledPin ?? (notInstalledPin = SvgFactory.GetBitmap(context.Resources, Resource.Raw.pin_not_installed, width, height))); }
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); }