zoukankan      html  css  js  c++  java
  • Windows Phone 7(WP7)开发 图片缓存

    最近在做一个WP7的客户端,中间涉及到了从互联网上获取图片,而手机的无线网络其实很慢的(哪怕是联通的3G我也没感觉有多么快),所以缓存我想还是必不可少的吧。

    其实做在WP7上面做缓存很容易,直接上代码了:


    <Image Height="150" Canvas.Left="8" Canvas.Top="8" Width="150" Source="{Binding PicID, Converter={StaticResource ImageConverter}, Mode=OneWay}"/> 

     图片Image控件主要就是Source属性的设置,绑定图片的ID,并且设置好Converter。

    public class ImageConverter : IValueConverter
        {

            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {

                ImageSource source = ImageCache.GetImage(value.ToString());

                return source;
            }

            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                return "";
            }

        } 

     Converter中其实没什么太多内容,主要是把PICID传递给缓存类,下面是缓存代码:

     public class ImageCache

        {
            public static Dictionary<string, ImageSource> ImageSources = new Dictionary<string, ImageSource>();

            static ImageCache()
            {
                ImageSources.Add(""new BitmapImage(new Uri(StaticResource.PathNoImage, UriKind.Relative))); 
            }

            public static ImageSource GetImage(string imageId)
            {
                if (!ImageSources.ContainsKey(imageId))
                {
                    ImageSource source = new BitmapImage(new Uri(StaticResource.UrlPicture + imageId));
                    ImageSources.Add(imageId, source);
                }

                return ImageSources[imageId];
            }
        }


     我的这个缓存只是在内存中开了一个Dictionary<string, ImageSource>来进行缓存的,当然大家有兴趣还可以使用隔离存储空间来存储图片。

    再补充一点:在mango里(之前版本没试过呢),从网络上获取图片不用很费劲的去写Http请求了,直接

    ImageSource source = new BitmapImage(new Uri("图片的http地址")); 

    就可以啦。 

  • 相关阅读:
    Android开发 Android Studio2.0 教程从入门到精通Windows版
    SQLSERVER 执行过的语句查询
    通过身份证分析出生年月日、性别、年龄的SQL语句
    SQL 根据日期精确计算年龄
    SQL 语句转换格式函数Cast、Convert
    Delphi 单元
    【转】实现Ribbon风格的窗体
    Delphi的打开文件对话框-TOpenDialog
    Delphi数据类型转换
    深入理解javascript中的立即执行函数(function(){…})()
  • 原文地址:https://www.cnblogs.com/vistach/p/WP7_Image_Cache.html
Copyright © 2011-2022 走看看