使用Glide for Android,我如何从asset和资源中加载图像?

67

我希望保持所有的变换、描边和动画都相同,思考能否在Glide中传递资源ID或资产名称来本地加载它?

3个回答

177

资源 ID 可以使用以下方式:

Glide.with(fragment)
    .load(R.drawable.resource_id)
    .into(imageView);

对于资产,您可以构建资产 URI:

Glide.with(fragment)
    .load(Uri.parse("file:///android_asset/<assetName>"))
    .into(imageView);

11
请勿忘记为“assetName”添加扩展名,例如:“image.jpg”。 - Vitalie Suba
3
应该是 R.drawable.resource_id 吧? - Pedro Oliveira
6
可能对其他人来说很明显,但我花了很多时间才弄清楚,因为我以为android_asset/assetName应该被替换为我的资产路径。最后我发现只需要使用assetName,而file:///android_asset/始终应该存在。 - Anigif
1
使用with(fragment)已经被弃用。现在应该使用with(context)。 - Lorenzo Vincenzi
2
注意在现代Android操作系统中不要使用Uri.parse(),而应该使用FileProvider.getUriForFile() - iCantC

7
Glide
.with(context)
.load(uri)
.asBitmap()
.placeholder(R.drawable.yourimage)
.error(R.drawable.yourimage)
.into(yourview);

除了上面的回答外,如果图像URL返回null,您可以像上面那样将默认图像加载到视图中。

5

当使用.asBitmap()时它能够工作。

String pathUri="file:///android_asset/img/flower.jpg";
Glide.with(context).asBitmap().load(Uri.parse(pathUri)).into(holder.imgView_post);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接