使用单点触控的像素完美图像



背景:

我需要基本了解如何使用MonoTouch在iOS设备上呈现像素完美的图像。在过去的18年里,我一直是windows平台的开发者,目前我对iOS生态系统的理解有限。据我所知,无论是视网膜显示器还是旧的"iPhone 3g"显示器,都有一个共同的坐标系可以使视图保持不变。

问题是:

使用MonoTouch生成和显示图像而不产生模糊或失真的最佳方式是什么?

//AnkMannen

您需要了解的第一件事是iOS的视网膜显示系统。

所有控件都在坐标中布局,就好像它们是3GS/iPad2或更旧版本一样。带有视网膜显示屏的设备,如iPhone 4、5和iPad 3,都使用相同的坐标,但屏幕尺寸是原来的两倍。

对于您的图像,请使用PNG。您将有两套,一套用于较小的显示器,另一套用于视网膜显示器。苹果使用文件命名约定:

  • 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图像,并与并排的较小屏幕看起来完全相同(除了更清晰)。

最新更新