gpt4 book ai didi

android - 如何处理 imageView.setImageURI(Uri.parse(local_path)); 的 try-catch 子句

转载 作者:行者123 更新时间:2023-11-29 14:38:58 26 4
gpt4 key购买 nike

我想处理 imageView 尝试从用户先前删除的本地文件中打开图像并改为显示默认图像的情况。为此,我尝试:

int flag = 0;
try{
img_car.setImageURI(Uri.parse(path_picture));
flag = 1;
}
catch(Exception e){ //if I put FileNotFoundException I get error: Unreachable catch block for FileNotFoundException. This exception is never thrown from the try
// statement body
Log.i("TAG EXCEPTION PIC", e.getMessage());
img_car.setImageResource(pictureId);
}

img_car.setImageResource(pictureId);img_car.setImageURI(Uri.parse(path_picture));(当图片实际存在时)都有效。

我的问题是抓不到异常(图片不存在时),基本上这个子句不抛。(我的LogCat不显示任何信息日志信息)。即便如此,LogCat 也会显示 java.io.FileNotFoundException:

 09-06 13:12:22.066: W/ImageView(27274): Unable to open content:
file:///storage/sdcard0/folder_name/my_image.PNG
09-06 13:12:22.066: W/ImageView(27274): java.io.FileNotFoundException:
/storage/sdcard0/folder_name/my_image.PNG: open
failed: ENOENT (No such file or directory) 09-06 13:12:22.066:
W/ImageView(27274): at libcore.io.IoBridge.open(IoBridge.java:416)
09-06 13:12:22.066: W/ImageView(27274): at
java.io.FileInputStream.<init>(FileInputStream.java:78) 09-06
13:12:22.066: W/ImageView(27274): at
java.io.FileInputStream.<init>(FileInputStream.java:105) 09-06
13:12:22.066: W/ImageView(27274): at
android.content.ContentResolver.openInputStream(ContentResolver.java:445)
09-06 13:12:22.066: W/ImageView(27274): at
android.widget.ImageView.resolveUri(ImageView.java:631) 09-06
13:12:22.066: W/ImageView(27274): at
android.widget.ImageView.setImageURI(ImageView.java:379) 09-06
13:12:22.066: W/ImageView(27274): at
com.myapp....

将我指向该行:img_car.setImageURI。另一件奇怪的事情是,在执行 try-catch 之后,标志的值为 1 即使异常发生在上面的行上,所以理论上这行不应该被执行。 (正确的?)。任何帮助将不胜感激。谢谢!

最佳答案

我退出 使用 try-catch 而是这样做了:

 Bitmap bitmap = BitmapFactory.decodeFile(path_picture);
if(bitmap != null)
imgdata.setImageBitmap(bitmap);
else{
imgdata.setImageDrawable(getResources().getDrawable(R.drawable.default_image));
}

我首先将内容提取到位图中,如果位图为空,则加载默认图像。它有效。

关于android - 如何处理 imageView.setImageURI(Uri.parse(local_path)); 的 try-catch 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18657821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com