我使用一个将 bimap 设置为 ImageView 的库:
库: https ://github.com/nostra13/Android-Universal-Image-Loader
imageLoader.displayImage(urlString, imageView, options);
它做一个异步任务做下载并将这个位图设置到imageView中。问题是,在它之后,我需要使用 sqlite 进行存储:
BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView.getDrawable();
Bitmap photo = bitmapDrawable.getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
db.updateUser(imageInByte);
db.close();
因此,当 imageLoader 执行任务时,程序会存储默认图像而不是下载的图像。此外,将此代码放入 Asyntask 中并尝试将位图存储在 onPostexecute(); 在图书馆里给我一个错误。
我不想使用另一个库,也许循环应该很好,我试过:
while (((BitmapDrawable)imageView.getDrawable()).getBitmap() == BitmapFactory.decodeResource(getResources(), R.drawable.ic_stub)) {
Log.d("MyApp", "whileloop");
}
那么,如何创建一个“等待”/循环来检查图像何时下载并存储呢?