저는 IOS 장치 화면에 UI가 있고 HDMI를 통해 두 번째 화면에 이미지가있는 MonoTouch 앱을 만들고 있습니다. UIImageView 내에 이미지를 표시 할 때 이미지가 두 번째 화면을 채우지 않습니다. 다음은 외부 화면에 이미지를 설정하고 표시하는 코드입니다. UIScreen.Screens [1] 너비와 높이가 올바른 값 1920/1080을 제공합니다. 이미지를 표시 할 때 위쪽/아래쪽에 1 인치 경계선이 있고 왼쪽/오른쪽에 1.5 인치가 있습니다. 비슷한 외부 화면 설정으로 MPMoviePlayerController를 사용하면 화면이 채워집니다.이미지가 외부 화면을 채우지 않습니다.
public void SetImageExternal(string imageFile)
{
if(string.IsNullOrEmpty(imageFile) == false)
{
UIScreen externalScreen;
UIWindow externalWindow;
UIView externalView;
UIImageView externalImageView;
SizeF externalScreenSize;
if(UIScreen.Screens.Length > 1)
{
if(externalWindow != null)
externalWindow.Dispose();
externalWindow = null;
externalScreenSize = new SizeF();
externalScreenSize.Width = 0;
externalScreenSize.Height = 0;
UIScreenMode maxScreenMode = null;
externalScreen = UIScreen.Screens[1];
// Use the screen with the largest width
for(int i = 0; i < externalScreen.AvailableModes.Length; i++)
{
UIScreenMode current = UIScreen.Screens[1].AvailableModes[i];
if(current.Size.Width > externalScreenSize.Width)
{
externalScreenSize = current.Size;
maxScreenMode = current;
}
}
externalScreen.CurrentMode = maxScreenMode;
externalWindow = new UIWindow(new RectangleF(0, 0, externalScreenSize.Width, externalScreenSize.Height));
externalWindow.RootViewController = new UIViewController(); // create dummy root view controller
externalWindow.UserInteractionEnabled = false;
externalImageView = new UIImageView(externalWindow.Frame);
externalImageView.Image = UIImage.FromBundle(imageFile);
externalImageView.ContentMode = UIViewContentMode.ScaleToFill;
externalView = new UIView(externalWindow.Frame);
externalView.AddSubview(externalImageView);
foreach(UIView view in externalWindow.Subviews)
view.RemoveFromSuperview();
externalWindow.AddSubview(externalView);
externalWindow.MakeKeyAndVisible();
externalWindow.Hidden = false;
externalWindow.Screen = externalScreen;
}
}
}