Xamarin iOS教程之視圖顯示圖像

Xamarin iOS教程之視圖顯示圖像

Xamarin iOS顯示圖像

在主視圖中顯示一個圖像,可讓開發者的應用程序變的更有趣,例如,在一些應用程序開始運行時,都會經過圖像來顯示此應用程序的玩法或者規則等。這不只可使用戶快速理解此應用程序的相關信息,也減小了開發者對應用軟件文字的介紹。顯示圖像的視圖被稱爲圖像視圖。如下將主要講解圖像視圖的一些功能。ide

Xamarin iOS爲視圖顯示圖像

顯示圖像須要使用到UIImageView類建立的對象。this

【示例2-10】如下就是如何在主視圖中顯示圖像的具體步驟:spa

1建立一個Single View Application類型的工程,命名爲2-4orm

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屬性設置ModeMode選項中提供了13種顯示模式,分別爲Scale To FillAspect FitAspect FillRedrawCenterTopBottomLeftRightTop LeftTop RightBottom LeftBottom Right。在這13種顯示模式中,可是最經常使用的有三種分別爲:Scale To FillAspect FitAspect Fill,效果如圖2.23所示。

2.23  效果

注意:Scale To Fill會使圖像所有顯示出來,可是會致使圖像變形。Aspect Fit會保證圖像比例不變,並且所有顯示在圖像視圖中,這意味着圖像視圖會有部分空白。AspectFill也會證圖像比例不變,會填充整個圖像視圖,可是可能只有部分圖像顯示出來,通常不對Mode進行設置,默認爲Scale To Fill模式。

Xamarin iOS定製特殊的圖像

在主視圖中顯示的圖像也不是一成不變的,也可能會將圖像變傾斜一些,或者是將圖像進行縮放等。如下就介紹兩個經常使用的功能。

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);

其中,sxsy分別表示將原來的寬度和高度縮放到多少倍。

【示例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人!

相關文章
相關標籤/搜索