Imgur 图像未加载滑行库
Imgur Images not loading with glide library
我正在尝试使用 glide 库将图像从 imgur 加载到一个简单的图像视图中,但它抛出了这个错误:
2019-05-19 09:34:15.999 5714-5714/com.bottlerocket W/Glide: Load failed for https://imgur.com/a/xYQOEhQ with size [1028x525]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
There were 2 causes:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
call GlideException#logRootCauses(String) for more detail
我已经尝试通过 glide.Override() 和使用 .AsBitmap()、.AsGif() 覆盖图像的大小。我还尝试使用 picasso 库加载这些图像,但只加载了一组图像,url 以 .gif 结尾而不是上面的图像。
这是我的适配器:
package com.bottlerocket.gallery
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.cardview.widget.CardView
import androidx.recyclerview.widget.RecyclerView
import com.bottlerocket.R
import com.bottlerocket.entities.Image
import com.bumptech.glide.Glide
class GalleryAdapter (
context : Context,
private val onImageSelected: (Image) -> Unit
) : RecyclerView.Adapter<GalleryAdapter.ViewHolder>() {
private val imageList: MutableList<Image> = mutableListOf()
var adapterContext = context
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.image_list_item_layout, parent, false)
return ViewHolder(view)
}
override fun getItemCount(): Int {
return imageList.count()
}
fun addImages(images: List<Image>) {
imageList.addAll(images)
notifyDataSetChanged()
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val image = imageList.get(position)
holder.imageName.text = image.imageTitle
Glide.with(adapterContext)
.load(image.imageLink)
.placeholder(R.drawable.placeholder)
.into(holder.imageContent)
holder.imageContainer.setOnClickListener {
onImageSelected.invoke(image)
}
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var imageContainer = view.findViewById<CardView>(R.id.image_container)
var imageName = view.findViewById<TextView>(R.id.image_title)
var imageContent = view.findViewById<ImageView>(R.id.image_content)
}
}
https://imgur.com/a/xYQOEhQ Is a webpage.
要加载 image/gif 文件,您需要一个不环绕 HTML 或其他网页的普通 URL。例如:
Glide.with(adapterContext)
.load("https://i.imgur.com/i4ZEaLM.gif")
.placeholder(R.drawable.placeholder)
.into(holder.imageContent)
我正在尝试使用 glide 库将图像从 imgur 加载到一个简单的图像视图中,但它抛出了这个错误:
2019-05-19 09:34:15.999 5714-5714/com.bottlerocket W/Glide: Load failed for https://imgur.com/a/xYQOEhQ with size [1028x525]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
There were 2 causes:
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
java.io.IOException(java.lang.RuntimeException: setDataSource failed: status = 0x80000000)
call GlideException#logRootCauses(String) for more detail
我已经尝试通过 glide.Override() 和使用 .AsBitmap()、.AsGif() 覆盖图像的大小。我还尝试使用 picasso 库加载这些图像,但只加载了一组图像,url 以 .gif 结尾而不是上面的图像。
这是我的适配器:
package com.bottlerocket.gallery
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.cardview.widget.CardView
import androidx.recyclerview.widget.RecyclerView
import com.bottlerocket.R
import com.bottlerocket.entities.Image
import com.bumptech.glide.Glide
class GalleryAdapter (
context : Context,
private val onImageSelected: (Image) -> Unit
) : RecyclerView.Adapter<GalleryAdapter.ViewHolder>() {
private val imageList: MutableList<Image> = mutableListOf()
var adapterContext = context
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.image_list_item_layout, parent, false)
return ViewHolder(view)
}
override fun getItemCount(): Int {
return imageList.count()
}
fun addImages(images: List<Image>) {
imageList.addAll(images)
notifyDataSetChanged()
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val image = imageList.get(position)
holder.imageName.text = image.imageTitle
Glide.with(adapterContext)
.load(image.imageLink)
.placeholder(R.drawable.placeholder)
.into(holder.imageContent)
holder.imageContainer.setOnClickListener {
onImageSelected.invoke(image)
}
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var imageContainer = view.findViewById<CardView>(R.id.image_container)
var imageName = view.findViewById<TextView>(R.id.image_title)
var imageContent = view.findViewById<ImageView>(R.id.image_content)
}
}
https://imgur.com/a/xYQOEhQ Is a webpage.
要加载 image/gif 文件,您需要一个不环绕 HTML 或其他网页的普通 URL。例如:
Glide.with(adapterContext)
.load("https://i.imgur.com/i4ZEaLM.gif")
.placeholder(R.drawable.placeholder)
.into(holder.imageContent)