2013-08-27 33 views
2

我在MvxTableViewCell中使用mvvmcross綁定,單元格元素是UIImageView和2個標籤。使用MvxImageViewLoader加載資源圖像,有可能嗎?

這些「rows」/ cells將列出一組預定義元素,這些元素的圖像是png文件,存在於Resources目錄(bundle資源)內或Internet上的任何地方。

由於我可能有這種混合的圖像,存在於捆綁和互聯網上,我想使用MvxImageViewLoader。

視圖模型有一個包含屬性,它是圖像的URI,爲資源圖片我試過幾種解決方案的對象的列表: - NSBundle.MainBundle.ResourcePath +「/ xpto.png」 - 「文件:/ /「+ NSBundle.MainBundle.ResourcePath +」/ xpto.png「

位於互聯網上的所有圖像都可以正常工作。

是否可以使用MvxImageViewLoader加載資源文件夾中存在的圖像?我應該使用轉換器嗎?

感謝您的幫助,

路易斯·皮尼奧

+0

你的代碼在哪裏?請告訴我們您現有的代碼。 – Raptor

回答

4

上觸摸的MvvmCross DownloadCache插件解析圖像加載到:MvxTouchLocalFileImageLoader - 看https://github.com/slodge/MvvmCross/blob/v3/Plugins/Cirrious/DownloadCache/Cirrious.MvvmCross.Plugins.DownloadCache.Touch/MvxTouchLocalFileImageLoader.cs

它使用res:作爲方案/前綴來檢測是否資源文件已被請求,然後使用UIImage.FromFile加載它們。

由於其他平臺不支持使用相同前綴的資源文件,因此在移動到多個平臺時可能需要使用值轉換器。

或者,您可以輕鬆實現自己的MyImageView控件,繼承自MvxImageView,該控件將攔截綁定屬性並決定是下載還是從資源中顯示它。

+0

感謝您的快速反應,使用res:工作正常,我將構建一個Android – lpinho

+2

的轉換器MvvmCross現在支持使用Android的「res:」了:https://github.com/MvvmCross/MvvmCross/commit/49382ab1fe6daa4012560a8af8a0c0bb4efe8fab –

相關問題