3

我已将我当前的项目从 Picasso 切换到 Glide。但是,我无法从应用程序资产中加载图像。这甚至可能吗?

示例代码:

String assetPath = "file:///android_asset/flags/FR.jpg";
Glide.with(getContext())
            .load(Uri.parse(assetPath))
            .placeholder(missingFlagDrawable)
            .centerCrop()
            .crossFade()
            .into(flag);

我也尝试了 load(String) 方法但没有成功,我没有看到加载方法采用例如我可以通过 AssetManager 类获得的 InputStream 或 FileDescriptor。

完全相同的代码在毕加索中运行。

Glide 在应用程序的其余部分正常工作,并且可以很好地加载远程图像。

4

2 回答 2

3

适用于Glide.with(xxx).load(xxx).asBitmap()

正如我在遇到该问题时打开的 GitHub 问题中所述。

于 2015-07-11T09:15:08.083 回答
0

我更喜欢将图像放在原始目录而不是资产中,然后按如下方式构建 de uri:

fun setImageFromRaw(imageView: ImageView, rawId: Int) {
        val context = imageView.context
        val uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + context.packageName + "/" + rawId)
        GlideApp.with(context).load(uri).into(imageView)
    }

此选项基于 Glide 团队在示例存储库中所做的工作。

于 2020-04-15T17:46:39.457 回答