背景:
我需要对如何使用MonoTouch在iOS设备上呈现像素完美图像有一个基本的了解。我对iOS生态系统的理解目前是有限的,在过去的18年里,它是Windows平台的开发者。据我所知,有一个共同的坐标系统,无论是视网膜显示器还是旧的“iPhone 3g”显示器,都可以呈现相同的视图。
问题是:
使用MonoTouch生成和显示图像而不会出现模糊或失真的最佳方法是什么?
// AnkMannen
答案 0 :(得分:7)
您需要了解的第一件事是iOS的视网膜显示系统。
所有控件均以坐标布局,就像它们是3GS / iPad 2或更早版本一样。带有视网膜显示屏的设备(如iPhone 4,5和iPad 3)都使用这些相同的坐标,但屏幕尺寸是屏幕尺寸的两倍。
对于您的图片,请使用PNG。您将拥有2套,一套用于较小的显示屏,另一套用于视网膜显示屏。 Apple使用文件命名约定:
yourImage.png
- 3GS的小图片yourImage@2x.png
- 视网膜显示放大图像假设图像尺寸较小,为150像素×50像素。要从C#中正确显示它:
//This code is in the ViewDidLoad method of a UIViewController
var imageView = new UIImageView(new RectangleF(0, 0, 150, 50));
imageView.Image = UIImage.FromFile ("yourImage.png");
View.AddSubView(imageView);
iOS将加载适当大小的图像(按命名约定)并将其放在屏幕的左上角。保持imageView
的正确大小也可以防止任何失真。在视网膜显示器上,iOS将加载较大的300x100图像,并且看起来相同(除了更清晰)与较小尺寸的屏幕并排。