【发布时间】:2019-08-20 03:13:45
【问题描述】:
我在使用 Glide 加载图像 android 时遇到问题。我将简单介绍如下: 首先我使用 glide 加载图像 我想使用 Intent.ACTION_PICK 选择图像,但是当我在 onActivityResult 上使用 image.setImageBitmap 但它不起作用
Glide.with(context!!).load(url).centerCrop().error(R.drawable.avata_boy).into(imgAvata)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == PICK_IMAGE_REQUEST && resultCode == Activity.RESULT_OK
&& data != null && data.data != null
) {
filePath = data.data
try {
val bitmap = BitmapFactory.decodeStream(activity!!.contentResolver.openInputStream(filePath!!))
imgAvata.setImageBitmap(bitmap)
Glide.with(context!!)
.load(bitmap)
.placeholder(R.drawable.avata_boy)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(imgAvata)
} catch (e: IOException) {
}
【问题讨论】:
-
您不必对位图进行“decodeStream”。 Glide 会自动为您完成。 Glide.with(context!!).load(filePath).into(imgAvata);现在让我们讨论实际问题,它会抛出任何错误吗?你检查过文件路径吗?是空的吗??
-
如果我首先在 onCreate 上通过 Glide 删除加载图像。 imgAvata.setImageBitmap(bitmap) 工作。但是我先通过滑行加载图像它不起作用
-
但是您在 onActivityResult 上获得了图像位置。我相信您是说 glide 不适用于“onActivityResult”意图数据给出的路径,对吧?
标签: android caching android-glide loadimage