1. 程式人生 > >xamarin.form image

xamarin.form image

Image的重要屬性Aspect,可以設定3個值,AspectFill,AspectFit,Fill 其中AspectFill代表原比例放大並填充至整個Image,AspectFit為等比例縮放放到Image中可能其中Image會有空白的地方,Fill為填滿整個Image但是圖片可能會失貞

Image所使用圖片的來源在Android端放在Resources下面的drawable,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi,drawable-xxxhdpi下,其中drawable是圖片最小的那個,如果你的圖片越來越大,依次放在後面的資料夾中,把圖片複製到對應的資料夾中,並且設定便宜方式為AndroidResource

IOS端只有Resources資料夾,如果圖片有多個大小的版本,可以使用demo.jpg和[email protected][email protected]來表示,通過後面增加@2x來表示更大的圖片,然後編譯方式更改為BundleResource就可以使用了

如果你是在form中使用可以使用

如果使用程式碼建立可以使用Image.Source = ImageSource.FromFile("xxx.jpg");

這種方式需要Android和IOS都要放置一份圖片,PCL可以解決這個問題

EmbeddedResource的編譯方式,然後程式碼中寫Image.Source = ImageSource.FromResource("名稱空間.資料夾.檔名.檔案格式");記住嵌入的資源一定要加名稱空間,否則無法載入

使用URI方式載入網路圖片

image.Source = new UriImageSource()載入網路資源並啟用超時響應
            {
                Uri = new Uri("http://image.mamicode.com/info/201811/20181125190339071494.png"),
                CacheValidity= new TimeSpan(5,0,0,0),
                CachingEnabled = true
            };

  使用CircleImage顯示圓形圖片,在Android和IOS中將矩形圖片顯示為圓形不太容易,可以直接使用nuget包中的Xam.Plugins.Forms.ImageCircle

來完成原型圖片的顯示,在form的專案中新增Xam.Plugins.Forms.ImageCircle,在Android的MainActivity.cs的OnCreate方法中加入ImageCircleRenderer.Init();  然後在IOS的AppDelegate.cs檔案中的FinishedLaunching方法中加入ImageCircleRenderer.Init();  

然後在form的xaml檔案中宣告名稱空間xmlns:custom="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin.Abstractions" 

然後建立圖片控制元件<custom:CircleImage Source="BG.png" Aspect="AspectFill" />