如何在Android设备的内部或外部内存中缓存云图像

时间:2016-04-25 15:09:25

标签: android

  

Hello Android成员,我有一个Android代码,当存在外部存储器时,它与Android设备配合得很好。实际上,来自URL的图像缓存在外部设备中并在我的应用程序上显示良好但我的问题是:任何人都可以指导我如何在未安装外部存储器的情况下将图像保存在内部存储器中在设备上?图像仅显示在具有存储卡的设备上。

public class FileCache {

private File cacheDir;

public FileCache(Context context){
    //Find the dir to save cached images
    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
        cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"TempImages");
    else
        cacheDir=context.getCacheDir();
    if(!cacheDir.exists())
        cacheDir.mkdirs();
}

public File getFile(String url){
    String filename=String.valueOf(url.hashCode());
    File f = new File(cacheDir, filename);
    return f;

}

public void clear(){
    File[] files=cacheDir.listFiles();
    if(files==null)
        return;
    for(File f:files)
        f.delete();
}

}

1 个答案:

答案 0 :(得分:0)

您可以使用context.getCacheDir()而不是context.getFilesDir()。原因是getCacheDir()用于存储轻量级缓存文件。

但是,我强烈建议您使用像Picasso或Glide这样开发良好的库来加载和缓存图像。