使用Application.GetResourceStream方法加载资源时得到的总是null

我们可以预先把程序中用到的资源,如图片,音乐等放入项目中,打包进XAP文档,需要的时候从中调用。下面就说说具体实现方法。

  第一步,把数据存进项目。

  1、右键点击项目名称-添加-新建文件夹(英文版请自行翻译),这里文件夹名以image为例,把需要的图片拖进来,当然你也可以不建,直接把图片拖到项目项目录下,

  2、选中刚刚拖进去的图片,看右下角的属性标签,如果没有,右键点图片,选属性。生成操作选Resource.

  第二步,程序调用。

System.IO.Stream src = Application.GetResourceStream(new Uri("/PhoneApp4;component/image/a.png", UriKind.Relative)).Stream;

  关键在Uri的格式,PhoneApp4是项目名称,component是固定路径,image/a.jpg才是图片资源相对路径,得到的是Stream,在微软官方的例子中,使用下面的方法来转换成图片:

            BitmapImage bi = new BitmapImage();
            bi.SetSource(src);
            Image img = new Image();
            img.Source = bi;-----------------------------------------------------------------------------------------------------------------------

测试在使用过程正发现Application.GetResourceStream方法加载资源时得到的总是null原因是这样的,右键点击Properties->在Build Action选择Resource,如下图所示

然后重新编译一下运行就可以加载到资源了

使用Application.GetResourceStream方法加载资源时得到的总是null

时间: 2024-10-19 17:22:49

使用Application.GetResourceStream方法加载资源时得到的总是null的相关文章

ClassLoader加载资源时的搜索路径

先来个例子: /** * 测试classloader加载路径在哪里<p> * main3 */ public static void main3(String[] args) { Properties props = new Properties(); //在src中的dyan/sendhttp包路径下 // InputStream is = TestSendHttp.class.getClassLoader().getResourceAsStream("dyan/sendhttp/

Egret制作Loading页面及分步加载资源教程

我们都知道,当游戏越做越大,资源越来越多的时候,加载资源会造成大量时间的浪费.为避免加载资源时游戏黑屏,导致玩家误认为游戏非正常运行,Loading界面起到至关重要的作用.今天就为大家带来用Egret制作Loading页面及分步加载资源的教程. 本文涉及以下内容: · RES加载Loading界面所使用的资源· 分步加载资源 加载LoadingUI所需要的资源 把LoadingUI所需要的资源配置到default.res.json的loading组中,组名任意.如下: 在Main.ts修改loa

Java加载资源文件几种方法

from: http://andyzhu.blog.51cto.com/4386758/775836/ import java.net.URL; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestMain { public static void main

加载图片时的2种方法

1,仅加载图片,图像数据不会缓存. NSString *path = [[NSBundle mainBundle] pathForResource:@”icon” ofType:@”png”]; UIImage *image = [UIImage imageWithContentsOfFile:path]; 或 NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:“png”]; NSData *i

Spring boot 国际化自动加载资源文件问题

Spring boot 国际化自动加载资源文件问题 最近在做基于Spring boot配置的项目.中间遇到一个国际化资源加载的问题,正常来说只要在application.properties文件中定义正确的资源文件路径,Spring boot就启动时就会自动加载资源. spring.messages.basename=i18n/message 但是我的项目修改后获取消息时系统报错,找不到对应语言的资源配置.于是试图找到原因.Google好久都没找到,简直好像就我一个人遇到这鬼问题一样??.只好自

unity3d Resources.Load动态加载资源

初步整理并且学习unity3d资源加载方法,预计用时两天完成入门学习 Unity3d常用两种加载资源方案:Resources.Load和AssetBundle Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源 而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的.其实场景里所有静态的对象也有这么一个加载过程,只是Unity后台替你自动完成 一:Resources.Load:使用这种方式加载资源,首先需要下Asset目录下创建

iOS和tvOS游戏按需加载资源简介

摘要 与iOS 9和watchOS 2一起,苹果引入了一套新的内容分发API,以便节约设备空间,这就是按需加载资源.通过使用按需加载资源,我们可以将特定的应用程序资源托管在苹果的服务器上,然后在需要的时候进行加载.在这个教程中,我将通过开发一个图片查看应用介绍一下按需加载资源的基本用法. tvOS On Demand Reourse 按需加载 iOS开发 目录[-] 介绍 准备工作 1. 按需加载资源 益处 类别 限制 应用分片 删除按需加载资源 2. 分配和指定Tag 3. 访问按需请求资源

java加载资源文件

className.class.getResourceAsStream 用法: 第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类Test.class ,同时有资源文件config.properties 那么,应该有如下代码: //前面没有"/"代表当前类的目录 InputStream is1 = Test.class.getResourceAsStream("config.properties"); System.out.printl

高性能网站优化-确保异步加载脚本时保持执行顺序

<高性能网站建设进阶指南> 脚本如果按照常规方式加载,不仅会阻塞页面中其他内容的下载,还会阻塞脚本后面所有元素的渲染.异步加载脚本可以避免这种阻塞现象,从而提高页面加载速度.但是性能的提升是要付出代价的.代码的异步执行可能会出现竞争状态.简单地说就是页面内部的脚本需要的标示符如果是在外部文件中定义的,而当外部文件异步加载的时候,如果没有保证外部文件和内部脚本执行顺序,很有可能会出现未定义标示符的错误 当异步加载的外部脚本与行内脚本之间存在代码依赖时,就需要通过一种保证执行顺序的方法来整合这两个