在主視圖中顯示一個圖像,可讓開發者的應用程序變的更有趣,例如,在一些應用程序開始運行時,都會經過圖像來顯示此應用程序的玩法或者規則等。這不只可使用戶快速理解此應用程序的相關信息,也減小了開發者對應用軟件文字的介紹。顯示圖像的視圖被稱爲圖像視圖。如下將主要講解圖像視圖的一些功能。ide
顯示圖像須要使用到UIImageView類建立的對象。this
【示例2-10】如下就是如何在主視圖中顯示圖像的具體步驟:spa
(1)建立一個Single View Application類型的工程,命名爲2-4。orm
(2)添加一個圖像1.jpg到建立的工程中,添加圖像的具體步驟以下:對象
首先,右擊工程中的Resources文件夾,彈出一個下拉菜單,如圖2.19所示。教程
圖2.19 下拉菜單 圖2.20 「添加文件」對話框開發
其次,選擇下拉菜單中的Add|Add Files…命令,彈出「添加文件」對話框,如圖2.20所示。it
接着,選擇須要添加到工程中的圖像文件,選擇Open按鈕,彈出Add File to Folder對話框,如圖2.21所示。io
圖2.21 Add File to Folder對話框form
最後,選擇「肯定」按鈕,須要添加的圖像,就添加到了建立工程的Resources文件夾中。
(3)打開2-4ViewController.cs文件,編寫代碼,實現爲主視圖添加圖像視圖的功能。代碼以下:
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Application
{
public partial class __4ViewController : UIViewController
{
…… //這裏省略了視圖控制器的構造方法和析構方法
#region View lifecycle
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
UIImageView imageDisplay = new UIImageView (); //實例化圖像視圖對象
imageDisplay.Frame = new RectangleF (0, 0, 320, 580); //設置位置和大小
imageDisplay.ContentMode = UIViewContentMode.ScaleAspectFit; //設置圖像視圖的模式
imageDisplay.Image = UIImage.FromFile("1.jpg"); //設置圖像視圖顯示的圖像
this.View.AddSubview (imageDisplay);
}
…… //裏省略了視圖加載和卸載先後的一些方法
#endregion
}
}
運行效果如圖2.22所示。
圖2.22 運行效果
注意:在此示例中,須要開發者掌握兩個知識點。
1.圖像支持的格式
圖像視圖顯示的圖像須要使用image進行設置。UIImage類是用來表明圖像信息的,圖像支持的格式如表2-5所示。
表2-5 圖像支持的格式
2.圖像在顯示時的模式
爲了使圖像在顯示的時候能夠知足各類須要,UIView視圖提供了多種顯示模式。選擇屬性按鈕後,在屬性界面中設置View中的Mode。或者是使用代碼經過ContentMode屬性設置Mode。Mode選項中提供了13種顯示模式,分別爲Scale To Fill、Aspect Fit、Aspect Fill、Redraw、Center、Top、Bottom、Left、Right、Top Left、Top Right、Bottom Left、Bottom Right。在這13種顯示模式中,可是最經常使用的有三種分別爲:Scale To Fill、Aspect Fit和Aspect Fill,效果如圖2.23所示。
圖2.23 效果
注意:Scale To Fill會使圖像所有顯示出來,可是會致使圖像變形。Aspect Fit會保證圖像比例不變,並且所有顯示在圖像視圖中,這意味着圖像視圖會有部分空白。AspectFill也會證圖像比例不變,會填充整個圖像視圖,可是可能只有部分圖像顯示出來,通常不對Mode進行設置,默認爲Scale To Fill模式。
在主視圖中顯示的圖像也不是一成不變的,也可能會將圖像變傾斜一些,或者是將圖像進行縮放等。如下就介紹兩個經常使用的功能。
1.旋轉圖像
旋轉圖像其實就是將圖像所在的圖像視圖進行旋轉。須要使用到Transform屬性,其語法形式以下:
圖像視圖對象. Transform= CGAffineTransform.MakeRotation(float angle);
其中,angle表示旋轉的弧度。
【示例2-11】如下將實現將主視圖顯示的圖像旋轉10度。具體步驟以下:
(1)建立一個Single View Application類型的工程,命名爲2-21。
(2)添加一個圖像1.jpg到建立工程的Resources文件夾中。
(3)打開2-21ViewController.cs文件,編寫代碼,實現將主視圖顯示的圖像旋轉10度。代碼以下:
using System;
using System.Drawing;
using MonoTouch.CoreGraphics; //引入MonoTouch.CoreGraphics命名空間
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Application
{
public partial class __21ViewController : UIViewController
{
…… //這裏省略了視圖控制器的構造方法和析構方法
#region View lifecycle
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
UIImageView imageDisplay = new UIImageView (); //實例化圖像視圖對象
imageDisplay.Frame = new RectangleF (0, 0, 320, 568); //設置位置和大小
imageDisplay.Image = UIImage.FromFile("1.jpg"); //設置圖像視圖顯示的圖像
imageDisplay.Transform=CGAffineTransform.MakeRotation((float)(3.14 / 10)); //旋轉圖像
this.View.AddSubview (imageDisplay);
}
…… //這裏省略了視圖加載和卸載先後的一些方法
#endregion
}
}
在此程序中,咱們引入了一個新的命名空間MonoTouch.CoreGraphics,此命名空間用於圖形繪製,由於CGAffineTransform.MakeRotation是這個命名空間的對象和方法。運行效果如圖2.24所示。
圖2.24 運行效果
2.縮放圖像
縮放圖像其實就是將圖像所在的圖像視圖進行縮放。一樣還須要使用到Transform屬性,其語法形式以下:
圖像視圖對象.Transform= CGAffineTransform.MakeScale (float sx,float sy);
其中,sx與sy分別表示將原來的寬度和高度縮放到多少倍。
【示例2-12】如下將實現將主視圖顯示的圖像放大2倍。具體步驟以下:
(1)建立一個Single View Application類型的工程,命名爲2-22。
(2)添加一個圖像1.jpg到建立工程的Resources文件夾中。
(3)打開2-22ViewController.cs文件,編寫代碼,實現將主視圖顯示的圖像放大兩倍。代碼以下:
using System;
using System.Drawing;
using MonoTouch.CoreGraphics;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Application
{
public partial class __22ViewController : UIViewController
{
…… //這裏省略了視圖控制器的構造方法和析構方法
#region View lifecycle
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
UIImageView imageDisplay = new UIImageView (); //實例化圖像視圖對象
imageDisplay.Frame = new RectangleF (80, 158, 160, 240); //設置位置和大小
imageDisplay.Image = UIImage.FromFile("1.jpg"); //設置圖像視圖顯示的圖像
imageDisplay.Transform = CGAffineTransform.MakeScale (2,2); //縮放圖像
this.View.AddSubview (imageDisplay);
}
…… //這裏省略了視圖加載和卸載先後的一些方法
#endregion
}
}
運行效果如圖2.25所示。
圖2.25 運行效果
本文選自:Xamarin iOS開發實戰大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!