03 2012 档案
摘要:前面介绍了PNG和JPG图片的尺寸解析,Windows Phone是直接支持这两种图片的显示的,使用Image控件。而GIF图片需要用第三方开发的控件来显示,ImageTools是开源社区CodePlex提供的,可以通过http://imagetools.codeplex.com/下载DLL以及源码。 引用ImageTools类库后,通过以下代码可以显示GIF图片。View Code //创建gif控件 AnimatedImage gifImage = new AnimatedImage(); Decoders.AddDecoder<GifDe...
阅读全文
摘要:上一篇介绍了Windows Phone 解析图片尺寸之png,本篇介绍一下如何解析jpg图片的尺寸大小,由于jpg图片的格式相对于png要复杂很多,所以首先我们要先清楚的了解jpg图片的数据格式,jpg图片包括SOI和数据两个部分。 SOI,Start of Image,图像开始,标记代码 2字节 固定值0xFFD8。 数据部分分成很多数据段,数据段的一般结构如下。段数据结构名称字节说明段标识>= 1多于一个的0xFF段类型1类型编码(称作“标记码”)段长度2包括段内容和段长度本身,不包括段标识和段类型短内容<= 65533 段类型有30种,但只有10种是必须被所有程序识别的,其它
阅读全文
摘要:前面介绍过Windows Phone 解析图片格式,通过解析图片格式,我们可以根据图片格式使用相关控件展示。在Windows Phone开发中,无论是系统Image控件,还是ImageTools中提供的图片控件,加载图片都是异步过程,这样就使得我们无法立即获得图片的尺寸大小,而必须等图片加载完成后才能获得。然后在开发过程中,有时候我们需要在加载图片完成之前就获取图片的尺寸。同前面解析图片格式的处理方法类似,我们需要解析图片文件的头信息,并从中获取图片的宽度和高度信息。 要解析Png图片的宽度和高度信息,首先需要了解Png图片的数据块结构,Png图片的尺寸信息存放在文件头数据块中,所以我们...
阅读全文
摘要:在Windows Phone中用于显示图片的是Image控件,不过Image控件目前只支持两种格式的图片,即Png和Jpg。平时我们经常用的图片还有Gif和Bmp两种,对于这两种图片我们无法通过Image来显示。需要用第三方开发的控件来显示,ImageTools是开源社区CodePlex提供的,可以通过http://imagetools.codeplex.com/下载DLL以及源码,通过ImageTools我们可以显示Gif和Bmp图片。 因此对于比较常用的图片格式Png、Jpg、Gif、Bmp,我们需要针对不同的图片格式使用不同的控件来显示,这里就有一个来解析图片格式的问题。我们不能单...
阅读全文
摘要:在C#程序开发中,我们会经常需要获得某种格式化的字符串,比如:颜色值#FF00FF,货币¥2.00,日期2012-03-14等等。在C#中格式化字符串,一般会用到String.Format()和.ToString()两个函数。 1.已知颜色的RGB值,获取颜色的字符串格式#FF00FF。 //#ff0ff String color1 = String.Format("#{0:x}{1:x}{2:x}", 255, 0, 255); //#FF0FF String color2 = String.Format("#{0:X}{1:X}...
阅读全文
摘要:通过Silverlight Extension Methods特性我们可以扩展基础类,为基础类增加一些方法,并且增加的方法可以同基础类原本的方法同样方式调用,相当的方便。下面就直接来看一个例子吧。在使用日期时间时常常会需要获取从1970-1-1日以来的总毫秒数,可是C#中的DateTime并未提供这个函数,下面就以此为例介绍一下Extension Methods特性。代码如下。namespace Huizhang212{ /// <summary> /// 利用Extension Methods特性实现对DateTime基础类扩展 /// </summary> pu..
阅读全文
摘要:前面介绍了Windows Phone 播放音频之SoundEffect,不过这种方式只能播放WAV格式的音频。下面就介绍一种小巧轻便,简单易用,并且支持格式多,还可直接从Uri中加载的方式。既通过MediaPlayer和Song类实现音频播放的方式。这两个类也是属于 XNA Framework ,所以需要添加引用 Microsoft.Xna.Framework。 1.由于在XNA中每33fp就会更新画面一次,所以在Silverlight Application中需要透过指定一个定期执行 FrameworkDispatcher.Update() 的事件。 //设置定时器 ...
阅读全文
摘要:前面介绍了Windows Phone 录制音频和Windows Phone 保存录音,录制的音频保存为WAV格式。在Windows Phone中播放音频的方式有很多种,下面就介绍一种专一用于播放WAV格式的播放方式。需要用到SoundEffect和SoundEffectInstance两个类,这两个类属于 XNA Framework ,所以需要添加引用 Microsoft.Xna.Framework。 1.同录制音频一样需要透过指定一个定期执行 FrameworkDispatcher.Update() 的事件。 //设置定时器 DispatcherTime...
阅读全文
摘要:前面介绍了Windows Phone 录制音频,通过访问Windows Phone的麦克风进行录制音频。录制好的音频要保存为文件,需要做相关格式转换。一般录音的格式为.WAV,下面就介绍如何将录音保存为WAV文件。 1.在录制音频开始之前,首先要向音频流存储区audioStream中写入WAV文件头信息。即在调用microphone.Start()之前调用WriteWavHeader(audioStream, microphone.SampleRate),其中WriteWavHeader函数实现如下。WriteWavHeader 1 /// <summary> 2 /// 写wav
阅读全文
摘要:Windows Phone 提供的访问麦克风的类为Microsoft.Xna.Framework.Audio.Microphone,该类属于XNA Framework , 若要在 Silverlight 中访问 Windows Phone 麦克风,同样需要使用此类。所以需要添加引用 Microsoft.Xna.Framework。 1.声明局部变量,获取麦克风单例。 //麦克单例 private Microphone microphone = Microphone.Default; //每次捕获音频缓存 private byte[]...
阅读全文
摘要:在开发应用程序的过程中,或多或少都会预置一些资源文件在项目工程中。通过开发工具我们可以将资源文件添加到项目中,以便在程序中使用。 一.资源文件属性BuildAction 1.BuildAction属性常用的状态有三种,即Content|Resource|None。 BuildAction属性设置为Conten的文件将被作为独立文件直接打包在xap文件中 BuildAction属性设置为Resource的文件将被嵌入到xap包中的dll文件内 BuildAction属性设置为None的文件,将不会存以任何形式在于xap包中 2.选择Content还是Resource。 微软给出...
阅读全文
摘要:Windows 8消费者预览版的发布使Windows 8一度风靡,作为喜欢尝鲜的本人也下载了一个并以Win7/Win8双系统方式安装。安装过程挺简单也很方便,比以往的系统都要方便许多。 通过这几天的使用,感受到微软只是为Windows 8做了一个美丽漂亮的界面,而内部都是空牢牢的。Win8 = Win7 + WP7,是个挺形象的说明。 应用商店里的应用寥寥无几,不过还好,竟然有QQ,于是就安装了一个,打开登录界面,感觉挺酷的,做的很不错。接下来就悲催了,输入账号和密码,登录到主界面后就开始卡了,无论点击那个图标都没有反应,整个就是卡死状态。多次重新登录和重启电脑也没有避免卡死的厄运,哎...
阅读全文
摘要:IsolatedStorageFile表示包含文件和目录的独立存储区。使用IsolatedStorageFile是一种让你可以在用户的设备中创建真实的文件和目录。该类使独立存储的虚拟文件系统抽象化。IsolatedStorageFile对象对应于特定的独立存储范围,在该范围中存在由 IsolatedStorageFileStream对象表示的文件。应用程序可以使用独立存储将数据保存在文件系统中这些数据自己的独立部分,而不必在文件系统中指定特定的路径。虚拟文件系统的根位于物理文件系统上经过模糊处理的每用户文件夹中。由主机提供的每个唯一标识符都映射为不同的根,该根为每个应用程序提供它自己的虚拟文件
阅读全文
摘要:Isolated Storage[独立存储]有两种方式在本地存储你的数据。第一是通过库中的键/值对,叫做IsolatedStorageSettings。第二是通过创建真实的文件和目录,叫做IsolatedStorageFile。 IsolatedStorageSettings允许你在一个字典中存储键/值对(注意,无需任何设定),然后再读取出来。这些数据会一直保存着,无论应用程序停止/启动,或者关机等等。除非你删除它,或者用户卸载你的应用程序,否则它一直存在。但是在它被添加到字典中之前是无法读取的。 IsolatedStorageSettings可提供一种将用户特定数据存储为本地 Iso...
阅读全文
摘要:前面曾介绍过Windows Phone 获取联系人,通过Windows Phone SDK 7.1提供的API来获取联系人信息。但是对于添加联系人并没有可以直接使用的API,我们只能通过选择器(Choosers)来实现添加联系人信息的操作。 SaveContactTask提供用于启动联系人应用程序以及使用户能够保存联系人的方法和事件。代码编写示例如下。 1.创建选择器并添加选择器操作完成事件(Completed) SaveContactTask saveContact =new SaveContactTask(); saveContact.Completed += new Even...
阅读全文
摘要:在进行Windows Phone开发的过程中,我们会需要获取手机的一些相关信息,如下列出如何获取手机的一些常用信息。 一.设备屏幕信息 double width= Application.Current.Host.Content.ActualWidth; double heigth = Application.Current.Host.Content.ActualHeight; 二.设备信息相关(Microsoft.Phone.Info) 1.设备厂商 string DeviceManufacturer = DeviceStatus.DeviceManufact...
阅读全文
摘要:Windows Phone SDK 7.1 提供了获取联系人列表信息的API,虽然是只读的,但是相比SDK 7.0已经很不错了。联系信息获取的相关API位于Microsoft.Phone.UserData空间下,对于联系人获取主要用到两个类:Contacts, Contact。下面给出获取联系人信息的实例以及注意事项。 1.首先创建一个Contacts对象,查询联系人信息的操作为异步处理,所以需要添加一个查询完成事件(SearchCompleted) Contacts contacts = new Contacts(); contacts.SearchCompleted +=...
阅读全文
摘要:1.MSDN-Windows Phone 开发中文文档 http://msdn.microsoft.com/zh-cn/library/ff402535(v=vs.92).aspx2.Windows Phone MSDN http://msdn.microsoft.com/zh-cn/windowsphone/default.aspx?ocid=ban-n-cn-wp7--cnblogs3.微软开源社区 http://www.codeplex.com/
阅读全文
摘要:毕业至今已将近四年,一直致力于IT行业。从刚毕业时做JavaEE,到为银行做Unix C的管理软件,再到做了将近一年的.net(C#)开发,然后又到从做WinCE开始对移动开发产生了莫大的兴趣,一直至今先后做了WinCE/WM,Symbian,再到现如今的Windows Phone。在每个领域都能获得不同的收获和感受,但是先如今回想起来,却未曾留下当时的心得和体会,真是遗憾。 来到博客园,就是为了分享和记录个人在程序开发中的心得和体会,以及结交博客园中的IT朋友和业界的IT朋友共同研究探讨程序世界。 目前我比较关注移动开发领域,主要从事Windows Phone的开发,期望同大家一同分...
阅读全文