BitmapFactory.decodeStream 返回 null (jar 文件中的图像)



我正在尝试将图像从Unity3d转换为Java。

我从 Unity 发送:

var filePath = System.IO.Path.Combine(Application.streamingAssetsPath, scene.thumbnail.name + ".jpg");

这将返回以下路径(通过 log.i 查看):

jar:file:///data/app/com.package.name/base.apk!/assets/image_1.jpg

我现在正在尝试将此图像解码为位图:

 InputStream stream =  this.getClass().getClassLoader().getResourceAsStream("/assets/image_1.jpg");
Bitmap bitmap = BitmapFactory.decodeStream(stream);
        if (bitmap != null)
            imageItems.add(new ImageItem(bitmap, "Image#" + i));

但是,位图始终为空。我错过了什么?我指的是错误的路径吗?如何告诉 java 在 Unity 提供的路径中解码文件?谢谢!!

我想通了:)

我必须使用资源管理器:

AssetManager assetManager = getAssets();
InputStream stream;
try {
            stream = assetManager.open(imagePathList.get(i));
            Bitmap bitmap = BitmapFactory.decodeStream(stream);
            if (bitmap != null)
                imageItems.add(new ImageItem(bitmap, "Image#" + i));
        } catch (IOException ex) {
            return null;
}

相关内容

  • 没有找到相关文章

最新更新