2016-04-25 73 views
0

您好Android成员,我有一个Android代码,与Android设备工作得很好,当存在外部内存时。实际上,URL中的图像会缓存在外部设备中,并在我的应用中显示得很好,但我的问题是:任何人都可以引导我如何将图像保存在内部存储器中,以及在未安装外部存储器的情况下在设备上?图像仅显示在具有存储卡的设备上。如何在Android设备的内部或外部存储器中缓存云图像

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(); 
} 

}

回答

0

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

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

+0

非常感谢pal! – Brian