在Windows Phone中如何显示GIF图片 已翻译 100%

曾沙 投递于 2012/11/27 16:15 (共 3 段, 翻译完成于 11-27)
阅读 537
收藏 0
0
加载中
话说前几天我一个朋友跟我谈到一个特别的需求,想从Web上下载GIF图片过来然后在Windows phone 上显示。我们都知道Silverlight与Windows Phone都是不支持GIF图像格式的。如果你尝试去下载gif图片然后在Image控件上显示,你将会得到一个异常。

所以我在网络上找到了  ImageTools 库,这是个包含多种图像格式转换器的第三方库,其中就支持针对GIF格式的图像转换。
使用方式:
首先为你的项目添加此库的引用,如下图,我们使用NuGet来获取ImageTools
曾沙
翻译于 2012/11/27 16:16
1
为了达成我们的目标,这里需要两个部件:
1, AnimatedImage,它将替换掉标准的 Silverlight ImageControl。
2, ImageConverter,完成图片格式的转换。

这两个对象都是  ImageTools.Controls 命名空间下的,所以在XAML中也要申明命名空间

 
 
 
 
<phone:PhoneApplicationPage.Resources>
    <imagetools:ImageConverterx:Key="ImageConverter"/>
</phone:PhoneApplicationPage.Resources>


一旦已经引入了命名空间,那么就能将 converter 作为页面资源添加进来,如下代码所示
代码

当然如果希望这个converter能够在整个项目都能使用,那么你可以在  App.xaml 文件的 Application.Resources 节点添加此元素。


曾沙
翻译于 2012/11/27 16:17
1
好了,现在可以在页面添加AnimatedImage控件了,这里可以将控件的  Source 属性绑定为  Uri 对象,然后设置好 Image Converter 的引用。如下:

 
 
 
 
<StackPanel>
    <imagetools:AnimatedImagex:Name="Image"Source="{Binding Path=ImageSource, Converter={StaticResource ImageConverter}}"/>
</StackPanel>

然后将 ImageSource 属性在后台C#代码中进行如下设定。

ImageSource = new Uri("http://www.nonstopgifs.com/animated-gifs/games/games-animated-gif-002.gif", UriKind.Absolute);

最后我们在页面的构造方法中添加这样一行代码来支持GIF解码的功能。

public MainPage()
{
    InitializeComponent();
    ImageTools.IO.Decoders.AddDecoder();
}
好了,编译一遍然后运行,你肯定能看到运动起来的GIF图片 
曾沙
翻译于 2012/11/27 16:19
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(0)

返回顶部
顶部