私の Android プロジェクト レイアウト xml ファイルには 3 つのボタンがあります。ショー、イベント、ホームです。ボタンをクリックすると、URL から画像がダウンロードされ、キャッシュに保存されます。というわけで、クリックしたらダウンロード完了です。表示ボタンをもう一度クリックすると、キャッシュからダウンロードした画像が表示されます。
問題は、すべての画像を 1 つのキャッシュ ディレクトリにダウンロードすることです。ボタンを個別にクリックすると、デフォルトの画像が読み込まれます。画像の識別ができないためです。次のように私のコード。
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(),"TNLRadio/res/shows");
cacheDirEvent=new File(android.os.Environment.getExternalStorageDirectory(),"TNLRadio/res/events");
cacheDirPromotion=new File(android.os.Environment.getExternalStorageDirectory(),"TNLRadio/res/promotion");
}
else{
cacheDir=context.getCacheDir();
cacheDirEvent=context.getCacheDir();
cacheDirPromotion=context.getCacheDir();
}
if(!cacheDir.exists()&& !cacheDirEvent.exists() && !cacheDirPromotion.exists()){
cacheDir.mkdirs();
cacheDirEvent.mkdir();
cacheDirPromotion.mkdir();
}
}
public File getFile(String url){
//I identify images by hashcode. Not a perfect solution, good for the demo.
String filename=String.valueOf(url.hashCode());
//Another possible solution (thanks to grantland)
//String filename = URLEncoder.encode(url);
File f = new File(cacheDir, filename);
return f;
}
助けてください。私はこの質問に行き詰まっています
その後、私はこれをしました。でも同じ答え……なんで?
public FileCache(Context context,int i){
//Find the dir to save cached images
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)&& i==3)
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"TNLRadio/res/shows");
else if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)&& i==2)
cacheDirEvent=new File(android.os.Environment.getExternalStorageDirectory(),"TNLRadio/res/events");
else if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED) && i==1)
cacheDirHome=new File(android.os.Environment.getExternalStorageDirectory(),"TNLRadio/res/home");
else
cacheDir=context.getCacheDir();
cacheDirEvent=context.getCacheDir();
cacheDirHome=context.getCacheDir();
if(!cacheDir.exists())
cacheDir.mkdirs();
else if (!cacheDirHome.exists())
cacheDirHome.mkdirs();
else if (!cacheDirEvent.exists())
cacheDirEvent.mkdirs();
}
public File getFile(String url){
//I identify images by hashcode. Not a perfect solution, good for the demo.
String filename=String.valueOf(url.hashCode());
//Another possible solution (thanks to grantland)
//String filename = URLEncoder.encode(url);
if(url.substring(0, 26).equals("http://tnlradio/promotions")){
File f = new File(cacheDirHome, filename);
return f;}
else if(url.equals("http://stream.tnlradio.com/images/dilshan-ishara.jpg")){
File f = new File(cacheDirEvent, filename);
return f;}
else{
File f = new File(cacheDir, filename);
return f;
}
}
助けてください