背景:
我需要对如何使用 MonoTouch 在 iOS 设备上呈现像素完美的图像有一个基本的了解。目前我对 iOS 生态系统的了解有限,过去 18 年来一直是 windows 平台的开发人员。据我了解,无论是视网膜显示器还是旧的“iPhone 3g”显示器,都有一个通用的坐标系可以呈现相同的视图。
问题是:
使用 MonoTouch 生成和显示图像而不会出现模糊或失真的最佳方法是什么?
// AnkMannen
背景:
我需要对如何使用 MonoTouch 在 iOS 设备上呈现像素完美的图像有一个基本的了解。目前我对 iOS 生态系统的了解有限,过去 18 年来一直是 windows 平台的开发人员。据我了解,无论是视网膜显示器还是旧的“iPhone 3g”显示器,都有一个通用的坐标系可以呈现相同的视图。
问题是:
使用 MonoTouch 生成和显示图像而不会出现模糊或失真的最佳方法是什么?
// AnkMannen
您需要了解的第一件事是 iOS 的视网膜显示系统。
所有控件都以坐标布局,就好像它们是 3GS/iPad 2 或更早版本一样。配备视网膜显示屏的设备(例如 iPhone 4、5 和 iPad 3)都使用这些相同的坐标,但屏幕尺寸是原来的两倍。
对于您的图像,请使用 PNG。您将拥有 2 套,一套用于较小的显示器,一套用于视网膜显示器。Apple 使用文件命名约定:
yourImage.png
- 更小的 3GS 图像yourImage@2x.png
- 更大的视网膜显示图像让我们假设图像是 150 像素 x 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
也可以防止任何失真。在 Retina 显示器上,iOS 将加载较大的 300x100 图像,并且并排看起来与较小尺寸的屏幕相同(除了更清晰)。