【问题标题】:how to do image caching in android [closed]如何在android中进行图像缓存[关闭]
【发布时间】:2011-03-22 20:08:41
【问题描述】:

我有一组要从其相应网址下载的图像。谁能告诉如何继续缓存这些图像?请回复。

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以通过调用getCacheDir() 获取内部存储缓存目录,该目录是您的应用用作存储的专属区域,任何人或任何其他应用都无法访问该目录。您还可以通过调用getExternalCacheDir() 获取外部存储(sd 卡)缓存目录,在这种情况下,用户可以访问该目录。您可以在 Androids Data Storage 开发指南的章节中阅读更多相关信息。

    在下载和保存图像方面,您可以执行以下操作:

    URL url = new URL(url); 
    HttpURLConnection ucon = (HttpURLConnection) url.openConnection();
    Bitmap image = Bitmap.decodeStream(ucon.getInputStream);
    
    File cacheDir = getCacheDir();
    
    File imageFile = new File(cahceDir, "downloadedImage.png");
    
    FileOutputStream fos = new FileOutputStream(imageFile);
    
    image.compress(Bitmap.CompressFormat.PNG, 100, fos);
    fos.close();
    fos.flush();
    

    下载大图像时要小心,因为这可能会导致 OOM 错误 (OutOfMemory),因此您可以用 SoftReference 对象包装您的位图对象以避免此错误。即

    SoftReference<Bitmap> softref = new SoftReference(image); 
    

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 2013-05-14
      • 2013-03-14
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      相关资源
      最近更新 更多