IOS zeichnen eines einfachen Bildes wird unscharf mit Xamarin C#
Ich bin in der Entwicklung in Xamarin und möchte zeichnen Sie einen einfachen Kreis mit dem text "KREIS" drin das Bild und zeigen es in einem UIImageView. Das problem ist, dass der Kreis und der text erscheinen sehr verschwommen. Ich habe gelesen, ein bisschen über die Subpixel aber ich glaube nicht, dass das mein problem.
Hier ist das verschwommene Bild und code, in der Hoffnung, jemand hat ein paar Ideen 🙂
UIGraphics.BeginImageContext (new SizeF(150,150));
var context = UIGraphics.GetCurrentContext ();
var content = "CIRCLE";
var font = UIFont.SystemFontOfSize (16);
const float width = 150;
const float height = 150;
context.SetFillColorWithColor (UIColor.Red.CGColor);
context.FillEllipseInRect (new RectangleF (0, 0, width, height));
var contentString = new NSString (content);
var contentSize = contentString.StringSize (font);
var rect = new RectangleF (0, ((height - contentSize.Height) / 2) + 0, width, contentSize.Height);
context.SetFillColorWithColor (UIColor.White.CGColor);
new NSString (content).DrawString (rect, font, UILineBreakMode.WordWrap, UITextAlignment.Center);
var image = UIGraphics.GetImageFromCurrentImageContext ();
imageView.Image = image;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Grund, warum es unscharf ist, weil es vergrößert wurde. Die bitmap ist nicht 150x150 (wie der Kontext, die Sie erstellt haben), es ist 333x317 Pixel.
Könnte es sein, weil
imageView
ist die Skalierung es ist Bild (es gibt keinen source code) oder weil die pixel zu verdoppeln (für retina-displays). Im letzteren Fall, was Sie wirklich wollen zu verwenden ist:wird (mit
0
) automatisch verwenden Sie die richtige Skalierungsfaktor für die retina (oder auch nicht) - display - und knackig Aussehen (und nicht oversized) auf allen Arten von Geräten.