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的xaml檔案中宣告名稱空間xmlns:custom="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin.Abstractions"
然後建立圖片控制元件<custom:CircleImage Source="BG.png" Aspect="AspectFill" />