2016-04-25 4 views
0

ハローの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(); 
} 

}

答えて

0

代わりcontext.getCacheDir()を使用するのではなく、あなたがcontext.getFilesDir()できます。理由は、軽量のキャッシュファイルを格納するためのgetCacheDir()です。

しかし、PicassoやGlideなどのよく開発されたライブラリを使用してイメージの読み込みとキャッシュを行うことを強くお勧めします。

+0

ありがとうございました! – Brian

関連する問題