public static async Task<Bitmap> GetBitmapAsync (SvgImage svgImage, int width, int height) { Bitmap result = null; Stream svgStream = await SvgService.GetSvgStreamAsync (svgImage).ConfigureAwait (false); await Task.Run(() => { var svgReader = new SvgReader(new StreamReader(svgStream)); var graphics = svgReader.Graphic; var scale = 1.0; if (height >= width) { scale = height / graphics.Size.Height; } else { scale = width / graphics.Size.Width; } var canvas = new AndroidPlatform().CreateImageCanvas(graphics.Size, scale); graphics.Draw(canvas); var image = (BitmapImage)canvas.GetImage(); result = image.Bitmap; }); return result; }
public void DrawText(string text, Rect frame, Font font, TextAlignment alignment = TextAlignment.Left, Pen pen = null, Brush brush = null) { if (brush == null) { return; } var paint = AndroidPlatform.GlobalGetFontPaint(font, alignment); var w = paint.MeasureText(text); var fm = paint.GetFontMetrics(); var h = fm.Ascent + fm.Descent; var point = alignment == TextAlignment.Left ? frame.TopLeft : alignment == TextAlignment.Center ? (frame.TopLeft + frame.TopRight) / 2 : frame.TopRight; var fr = new Rect(point, new Size(w, h)); AddBrushPaint(paint, brush, fr); graphics.DrawText(text, (float)point.X, (float)point.Y, paint); }
public TextMetrics MeasureText(string text, Font font) { return(AndroidPlatform.GlobalMeasureText(text, font)); }