xamarin使用listview时经常会使用图片,而图片的图片源设置在uwp平台中是有平台特性的,这点请注意区分处理。也就是说在android和IOS上正常的处理在uwp下却是错误的方式。

如同一张图片在不同的内容页同时出现的情况,即存在导航页面的时候,通常我们会用一个listview来显示人员列表,人员列表包含每个人的头像图片,如果我们点击listview同时使用Navigation.PushAsync()方法进入人员信息详细页面的时候,如果在详细页面你同时也有这张头像图片的情况。如果你只是简单的如下设置一个图片路径,那将会报The process cannot access the file “Image\test.png” because it is being used by another proce

Image Img=new() Image();

Img.Source= ImageSource.FromFile("Image\test.png");

由于uwp的平台特性,当我是设置图片的路径的时候,这个图片会被这个进程占用,同时阻止其他进程使用,当我们在另一个页面也同样使用这种图片时,有用上一个导航页面没有释放到这张图片,导致我们在新页面不能使用这种图片。这造成我们不能对资源操作。

下面提供一种解决方案,在我们读取资源图片的时候,尽量不要使用进程独占并且不会主动释放的方式,我们可以使用FileStream方式读取资源。然后释放掉,方法如下

public byte[] PhotoStream(string path)
{
byte[] byData;
using (FileStream fs = new FileStream(path, FileMode.Open))
{
byData = new byte[fs.Length];
fs.Read(byData, 0, byData.Length);
fs.Dispose();
}
return byData;
}

在uwp平台下使用下列方式调用上面的方法即可。

Image Img=new() Image();

if (Device.OS == TargetPlatform.Windows)
{
byte[] bytes = Dependencies.FileUtil.PhotoStream(value.ToString());
stream = new System.IO.MemoryStream(bytes);
Img.Source= ImageSource.FromStream(GetStream);
}

xamarin UWP图片读取的更多相关文章

  1. xamarin UWP证书问题汇总

    打算开发一个软件使用rsa加密的东西,所以有用到数字证书这块,最近遇到些问题, 问题一:使用如下代码添加数字证书后,在证书管理器的当前用户和本地计算机下都找不到这张证书. using (X509Sto ...

  2. 限制Xamarin获取图片的大小

    限制Xamarin获取图片的大小在App开发中,经常会使用网络图片.因为这样不仅可以减少App的大小,还可以动态更新图片.但是手机使用网络环境千差万别.当网络环境不是理想的情况下,加载网络图片就是一个 ...

  3. 【学习笔记】tensorflow图片读取

    目录 图像基本概念 图像基本操作 图像基本操作API 图像读取API 狗图片读取 CIFAR-10二进制数据读取 TFRecords TFRecords存储 TFRecords读取方法 图像基本概念 ...

  4. 【Android】内存卡图片读取器,图库app

    上一篇<[Android]读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示>(点击打开链接)在真机上測试非常有问题.常常遇到内存溢出.卡死的情况.由于如今真机上的内存上,2G ...

  5. OpenCV笔记(1)(图片读取与现实、色彩空间、基础运算、均值方差、逻辑运算、泛洪填充、均值中值及自定义平滑)

    一.图片读取和显示 import cv2 as cv # 图片读取cv.imread(img_path) car_img = cv.imread("car1.png") # 图片显 ...

  6. xamarin UWP设置HUD加载功能

    使用xamarin开发的时候经常用到加载HUD功能,就是我们常见的一个加载中的动作,Android 下使用 AndHUD , iOS 下使用 BTProgressHUD, 这两个在在 NuGet 上都 ...

  7. UWP 图片模糊

    先看一下效果: 这是微识别的个人中心页面,顶部有头像,以及背景图片模糊. 要实现这样的效果,有两种方法. 第一种麻烦点,也是我现在用的.想看简单的,翻到最后 1. 首先看一下xaml代码: <S ...

  8. xamarin UWP ActivityIndicator

    在xamarin的UWP平台使用ActivityIndicator时,如果你时后台创建的这个对象,请设置他的宽度,不然在UWP平台下会发现找不这个对象,其实是在这个平台和特点版本下的宽度没设置,导致有 ...

  9. Kanzi编程基础3 - 图片读取与显示

    Kanzi开发的时候会遇到需要从外部读取图片的情况.Kanzi2.8版本和3.3版本读取方法稍有不同,我们先看看2.8版本的api. [2.8版本] 1)首先要从文件中读取一张图片 struct Kz ...

随机推荐

  1. Win10上使用SVN遇到的一些问题

    最近使用上了Win10,遇到了很多问题,前一段时间是MVC3项目的问题,今天又遇到了SVN工具使用的相关问题.我这个环境是WIN 10,64位,SVN工具是TortoiseSVN-1.9.2.2680 ...

  2. java 读取文件内容 三种形式及效率对比

    IOUtils.getStringFromReader() 读取方式为最快的 InputStream in = null; String line = ""; long start ...

  3. Android照片墙加强版,使用ViewPager实现画廊效果

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12646775 记得关于照片墙的文章我已经写过好几篇了,有最基本的照片墙,有瀑布流模 ...

  4. linux指令记录

    sudo mount /dev/sda3 data 挂载硬盘到当前目录下的data文件夹

  5. 【CronExpression表达式详解和案例】

    1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许 ...

  6. 【分块打表】bzoj3758 数数

    验证一个数是不是优美的:设数位之和为sum,若sum mod 2 != 0,则不优美.否则考虑枚举这个数的每一位,将之前所有位任意相加产生的所有 数字和 和 当前位 的和塞到集合里,最终判断集合中是否 ...

  7. C++单元测试 之 gtest -- 组合数计算.

    本文将介绍如何使用gtest进行单元测试. gtest是google单元测试框架.使用非常方便. 首先,下载gtest (有些google项目包含gtest,如 protobuf),复制目录即可使用. ...

  8. Linux命令之route - 显示和操作IP路由表

    转自:  http://codingstandards.iteye.com/blog/1125312 用途说明 route命令用于显示和操作IP路由表(show / manipulate the IP ...

  9. 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management

    写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...

  10. [Python] Pitfalls: Be Careful with os.chdir

    One thing you need to keep in mind is that when using os.chdir to change the working directory of cu ...