ispsh 发表于 2015-5-9 08:58:59

Windows Phone 7(WP7)开发 图片缓存

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

  
  图片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 ImageSources = new Dictionary();
      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;
      }
    }  

  我的这个缓存只是在内存中开了一个Dictionary来进行缓存的,当然大家有兴趣还可以使用隔离存储空间来存储图片。
  
  
  再补充一点:在mango里(之前版本没试过呢),从网络上获取图片不用很费劲的去写Http请求了,直接
  ImageSource source = new BitmapImage(new Uri("图片的http地址"));
  就可以啦。
  
页: [1]
查看完整版本: Windows Phone 7(WP7)开发 图片缓存