我正在尝试填写我的列表视图。我的列表视图中的每个项目都包含一个文本(标题)和一个图像(缩略图)。我的图像是从服务器下载的。所以每次我在我的列表视图中添加一个项目时,我都会检查我的图像是否已经存在,如果不存在,我会在异步任务中下载它。当异步任务完成执行时,我将下载的图像放在我的项目列表视图中。
private class Thumbnails extends AsyncTask<Void, Integer, Void>
{
private Bitmap bitmap;
private File fileTest;
private String extStorageDirectory;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onProgressUpdate(Integer... values){
super.onProgressUpdate(values);
}
@Override
protected Void doInBackground(Void... arg0) {
Log.i("DocumentListItem","start downloading thumbnail = "+thumbnailURL);
try{
extStorageDirectory = Environment.getExternalStorageDirectory().toString();
fileTest = new File(extStorageDirectory+"/AAAA/"+mDocument.getTitle());
if(fileTest.exists()){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
bitmap = BitmapFactory.decodeFile(fileTest.getAbsolutePath(), options);
}
else{
bitmap = BitmapFactory.decodeStream(new URL(thumbnailURL).openConnection().getInputStream());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (bitmap != null){
bitmapThumbnail = bitmap;
mImage.setImageBitmap(bitmap);
}
if(fileTest.exists()){
}else{
try {
File folder = new File(extStorageDirectory, "AppoxySavedFiles");
folder.mkdir();
File file = new File(folder, mDocument.getTitle());
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
问题是封面图像缩略图随机加载,并且没有与正确的文档项目正确关联。上下滚动时缩略图会重新排列。
有谁知道出了什么问题?