2013-04-08 19 views
7

Xamarin'de geliştiriyorum ve içinde "CIRCLE" metni bulunan basit bir daire çizmek ve bu görüntüyü bir UIImageView içinde görüntülemek istiyorum. Sorun, dairenin ve metnin çok bulanık göründüğü. Alt pikseller hakkında biraz okudum ama bunun benim sorunum olduğunu düşünmüyorum.Basit bir görüntü çizen IOS Xamarin C kullanarak bulanık çıkıyor #

İşte birisi umuduyla bazı fikirler vardır, bulanık görüntü ve kod :) o resized çünkü o bulanık neden

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; 

Blurry Circle

cevap

12

nedenidir. Bu bitmap 150x150 değil (oluşturduğunuz içerik gibi), 333x317 pikseldir. Bu, imageView'un görüntüyü ölçeklemesinden kaynaklanabilir (kaynak kodu yoktur) veya piksel iki katına çıkması nedeniyle olabilir (retina göstergeleri için) Gerçekten kullanmak istediğiniz sonraki durumda ise: (0 kullanarak) olur

UIGraphics.BeginImageContextWithOptions (size, false, 0); 

automagicallylar hakkı retinanın için ölçekleme faktörünün (ya da değil) ekran kullanmak - ve her çeşit gevrek (ve büyük boy değil) bakmak cihazların

+0

Retina için piksel iki katına çıktı ve öneriniz çözüldü.İyi iş, teşekkürler :) –

İlgili konular