【发布时间】:2012-10-03 07:35:09
【问题描述】:
我正在使用此代码下载图像:
// Download AVATAR
try {
File avatar = new File(Environment.getExternalStorageDirectory() + "/Android/data/carl.fri.fer.omegan/avatar.jpg");
prefs.edit().putString("loginUser", json.name).commit();
prefs.edit().putInt("loginMatter", json.darkmatter).commit();
if (!avatar.exists()) {
Log.i("AVATAR", "Downloading user avatar...");
URL url = new URL("Valid URL");
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
FileOutputStream fos = new FileOutputStream(avatar);
fos.write(baf.toByteArray());
fos.close();
}
else Log.i("AVATAR", "The user avatar already exists!");
} catch (IOException e) { System.out.println("Error downloading avatar: " + e); }
然后我尝试使用此代码显示此图像:
File usrAvatar = new File(Environment.getExternalStorageDirectory() + "/Android/data/carl.fri.fer.omegan/avatar.jpg");
if(usrAvatar.exists()) {
Bitmap avatarBmp = BitmapFactory.decodeFile(usrAvatar.getAbsolutePath());
userAvatar.setImageBitmap(avatarBmp);
}
问题出现在这里:
userAvatar.setImageBitmap(avatarBmp);
Android 4.0.4:错误类型:NullPointerException。
Android 2.3.5:错误类型:ImageView 不显示图片但未出现错误。
1- ImageView userAvatar 是正确的,因为我可以显示可绘制文件夹中的图像。
2- 我要显示的图像已成功下载,因为使用文件管理器我可以在指定的文件夹和文件名上找到它。
3- 图像没有损坏,因为我可以使用任何图像查看器打开它。
那么,这可能是问题所在?快疯了!
任何帮助将不胜感激。
谢谢你!
【问题讨论】:
标签: android image imageview android-sdcard