【发布时间】:2014-05-28 12:57:44
【问题描述】:
我从网上保存了一张这样的图片:
public void SetSelectedConsultant(string consultantId)
{
// ...
var path = this.fileStore.PathCombine(App.IMAGES_FOLDER, App.SELECTED_CONSULTANT_IMAGE_FILENAME);
if (this.fileStore.Exists(path))
{
this.fileStore.DeleteFile(path);
}
this.fileStore.EnsureFolderExists(App.IMAGES_FOLDER);
this.GeneralAsyncLoad(
App.SERVER_URL + App.CONSULTANT_FILE_NAME,
stream =>
{
this.SaveConsultantImage(stream, path);
this.mvxMessenger.Publish(new ConsultantUpdatedMessage(this));
});
}
private void SaveConsultantImage(Stream stream, string path)
{
var memoryStream = new MemoryStream();
stream.CopyTo(memoryStream);
byte[] pictureBytes = memoryStream.ToArray();
this.fileStore.WriteFile(path, pictureBytes);
}
ConsultantUpdatedMessage 被我的视图模型捕获,它将为ConsultantImageUrl 提高属性更改。我的其他属性(如 ConsultantName 等)在视图中正确刷新,但图像拒绝显示在控件中:
<Mvx.MvxImageView
android:scaleType="fitXY"
android:layout_margin="5dp"
android:layout_width="220dp"
android:layout_height="wrap_content"
local:MvxBind="ImageUrl ConsultantImageUrl" />
我检查了文件是否存在,使用 fileStore.Exists,结果为“true”,但文件不会显示。是不是我保存图片的方式不对?
编辑:作为操作指南,我使用了本教程 (https://github.com/MvvmCross/NPlus1DaysOfMvvmCross/tree/master/N-16-CollectABull-Part5)。但是,他们使用本地相册中的照片而不是下载照片。
【问题讨论】:
-
您能否添加更多代码来说明如何在视图模型中使用 ConsultantImageUrl?您在调试跟踪中看到什么奇怪的东西吗?