我目前使用下面的代码下载然后显示图像,我只是希望有人可以告诉我如何检查文件是否已经下载并且只是显示如果是这样,否则然后下载并显示..请帮助
void downloadFile(String fileUrl){
URL myFileUrl =null;
try {
myFileUrl= new URL(fileUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
Bitmap bmImg = BitmapFactory.decodeStream(is);
ImageView imView = (ImageView)findViewById(R.id.imview);
imView.setImageBitmap(bmImg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:0)
File imageIamInterestedIn = new File( filePath );
if (!imageIamInterestedIn.exists())
{
download();
}
else
{
imageView.setImageBitMap( BitmapFactory.decodeFile( filePath ) );
}
答案 1 :(得分:0)
您需要以某种方式编写缓存,临时内存缓存或持久数据库/文件缓存。
以下是实现目标的一些步骤:
如果您不想再次获取此图像,则需要持久缓存,因为您将来会经常访问此图像。如果考虑到速度,则需要临时内存缓存,并且将来不会非常访问此图像。
答案 2 :(得分:0)
只需下载此LazyLoader:http://open-pim.com/tmp/LazyList.zip。
然后有一个ImageLoader类可能对您上面提到的相同任务有所帮助。
有关详细信息:Lazy load of images in ListView,它适用于列表视图,但您可以使用相同的方式异步加载图像。