file:///android_asset 不起作用

file:///android_asset 不起作用,android,android-assets,Android,Android Assets,我将图像存储在assets/img/categories文件夹中,并尝试使用以下代码加载它们: ImageLoader.getInstance().displayImage(String.format("file:///android_asset/img/categories/%d.JPG", category.getId()), mImageIv); 这似乎还可以,但不起作用: E/ImageLoader(28790): /android_asset/img/categories/9.JPG

我将图像存储在assets/img/categories文件夹中,并尝试使用以下代码加载它们:

ImageLoader.getInstance().displayImage(String.format("file:///android_asset/img/categories/%d.JPG", category.getId()), mImageIv);
这似乎还可以,但不起作用:

E/ImageLoader(28790): /android_asset/img/categories/9.JPG: open failed: ENOENT (No such file or directory)
E/ImageLoader(28790): java.io.FileNotFoundException: /android_asset/img/categories/9.JPG: open failed: ENOENT (No such file or directory)

为什么它不工作?

file:///android_asset
仅用于
WebView


我不知道什么是
ImageLoader
,但看看它是否接受
InputStream
。如果是这样,请使用
AssetManager
open()
在所需资产上获取
InputStream

我认为对于Assets文件夹,URI的用法类似于此

String imageUri = "assets://image.png";
imageLoader.displayImage(imageUri, imageView);
只需查看参考资料

所以你要改变你的代码

ImageLoader.getInstance().displayImage(String.format("assets:///img/categories/%d.JPG", category.getId()), mImageIv);
String imageUri = "file:///mnt/sdcard/image.png"; 
或者像这样从SD卡加载

ImageLoader.getInstance().displayImage(String.format("assets:///img/categories/%d.JPG", category.getId()), mImageIv);
String imageUri = "file:///mnt/sdcard/image.png"; 
让我知道这是否有效,如果URI使用
file:///android_asset/
模式:

public static InputStream open(String urlString, Context context) throws IOException {
    URI uri = URI.create(urlString);

    if (uri.getScheme().equals("file") && uri.getPath().startsWith("/android_asset/")) {
        String path = uri.getPath().replace("/android_asset/", ""); // TODO: should be at start only
        return context.getAssets().open(path);
    } else {
        return uri.toURL().openStream();
    }
}
用法如下:

InputSteam is = Helper.open("file:///android_asset/img/categories/001.JPG", this); // "this" is an Activity, for example

未显示:异常处理。

谢谢。这是相当有名的图书馆通用图像加载器。因此,如果我想以这种方式使用此库,我需要将资源预复制到外部存储?@RankoR:Universal Image Loader有自己的
资源://
伪资源方案,如前所述。使用
drawable
文件夹有什么错?@GirishNair大约有1.5k个图像,应该动态加载