我有一个ImageView和一个WebView,我试图显示相同的图像。
我已经用picasso下载了图像,并且在下载过程中一切正常。
当我将图像保存到SD卡中以显示到ImageView和WebView时,我遇到了一个问题:我的ImageView总是显示最后下载的图像,这没关系。但是,在我保存图像以显示到WebView之后,我的WebView始终显示下载的第一个图像而不是最后下载的图像。
拜托,我做错了什么?
public void downloadimage(){
Bitmap bm=MyGetImage(1);
saveImageToExternalStorageToShow(bm);
bm=MyGetImage(2);
saveImageToExternalStorageToShow(bm);//into this method, webview doesn´t show image correctly
}
public void saveImageToExternalStorageToShow(Bitmap image) {
String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/";
try
{
ImageView imv= (ImageView) getActivity().findViewById(R.id.ImvTeste);
//ok-shows the image downloaded
imv.setImageBitmap(image);
File dir = new File(fullPath);
if (!dir.exists()) {
dir.mkdirs();
}
OutputStream fOut = null;
String fileName = "sala.jpg"; //DateFormat.format("dd_MM_yyyy_hh_mm_ss", System.currentTimeMillis()).toString();
File file = new File(fullPath, fileName);
boolean b=false;
if(!file.exists()) {
b=file.createNewFile();
} else {
b=file.delete();
b=file.createNewFile();
}
fOut = new FileOutputStream(file);
image.compress(Bitmap.CompressFormat.JPEG, 80, fOut);
fOut.flush();
fOut.close();
String imagePath = Uri.fromFile(file).toString();//"file://"+ base + "/test.jpg";
String html = "<html><head></head><body><img src=\""+ imagePath + "\"></body></html>";
//Problem here-wedview allways shows the first image downloaded
webView.loadDataWithBaseURL("", html, "text/html", "utf-8", "");
}
catch (Exception e)
{
Log.e("saveToExternalStorage()", e.getMessage());
}
}
答案 0 :(得分:1)
这可能是由于图像被缓存在WebView中。
在显示第二张图片之前尝试调用webView.clearCache(true)
,它应该正常工作。