3

我很困惑为什么会发生这种情况,因为我的知识很少说它不应该发生。我有几个图像存储在apk的android资产目录中,实际上在一些目录结构中,例如:

    Assets --> aphotos --> launch50 ---> launch501.jpg

例如,现在我想以语法方式将图像设置为 imageview 小部件,如下所示: -

    Uri uri =    Uri.parse("file:///android_asset/"+context.getString(R.string.photoroot)+"/"+fldr+"/"+introphoto);
    System.out.println("Image URI: "+uri.toString());       
    imageView.setImageURI(uri);

其中“fldr”和“introphoto”来自数据库。这样做时,它会在“LogCat”中生成以下错误:-

11-22 19:23:46.689: W/ImageView(12990): Unable to open content: file:///android_asset/aphotos/launch50/launch501.jpg 11-22 19:23:46.689: W/ImageView(12990): java.io.FileNotFoundException: /android_asset/aphotos/launch50/launch501.jpg (No such file or directory) 11-22 19:23:46.689: W/ImageView(12990):   at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)

谁能告诉它为什么会发生,因为图像在那里?提前致谢!

4

2 回答 2

0

这个问题来看,获取资产文件的 URI 显然效果不佳。

我认为你需要用流来做到这一点:

    String path = context.getString(R.string.photoroot)+"/"+fldr+"/"+introphoto;
    InputStream is = getAssets().open(path);
    Bitmap bitmap = BitmapFactory.decodeStream(is);
    imageView.setImageBitmap(bitmap);
    is.close();
于 2012-11-22T15:06:10.850 回答
0

我建议您使用以下代码:

ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

Glide.with(this).load("file:///android_asset/img/fruit/cherries.jpg").into(imageView);
于 2021-12-07T10:15:42.690 回答