Android 中使用 Glide 库加载图像的问题

问题描述 投票:0回答:1

我正在尝试从 api (tmdb) 获取电影列表图像,但我不知道我是否使用了错误的 api 或 GLIDE

这是 Glide 的一段代码:

override fun onBindViewHolder(holder: MovieViewHolder, position: Int) {
    holder.binding.apply {
        val movie = movies[position]
        val imageBase = "https://image.tmdb.org/t/p/w500/"

        Glide.with(holder.itemView)
            .load(imageBase + moviePoster)
            .error(R.mipmap.tvmovieposter)
            .centerCrop()
            .into(holder.binding.moviePoster)
        movie
        movieTitle.text = movies[position].title
        MovieReleaseDate.text = movies[position].release_date
    }
}

这是错误:

/Glide:加载失败
https://image.tmdb.org/t/p/w500/androidx.appcompat.widget.AppCompatImageView{995e7ba V.ED....I. 0,0- 0,0 #7f080119 app:id/movie_poster} 与大小 [300x400] `你的文字``

I/Glide:根本原因(1 中的 1) com.bumptech.glide.load.HttpException:连接或获取数据失败,状态码:-1 在 com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:98)

这是我获取网址的地方:

interface MovieApiInterface {
        @GET("/3/movie/popular?api_key=90a54a6b7ac845f17b2b70d45f6c2851")
        fun getMovieList(): Call<MovieResponse>
}

这是我的数据类:

@Parcelize
data class Movie(

    @SerializedName("id")
    val id: String?,

    @SerializedName("title")
    val title: String?,

    @SerializedName("poster_path")
    val poster_path: String?,

    @SerializedName("release_date")
    val release_date: String,
) : Parcelable {
    constructor() : this("", "", "", "")
}
android kotlin android-glide
1个回答
0
投票

您的错误在以下行:

val movie = movies[position]

从您稍后在

movies[position].title
中使用电影的方式来看,我假设“电影”是某种数据类的数组。

该数据类的哪一部分包含海报的 URL?

如果你发布你的“电影”课程会更清楚。我可以看到它有一个

title
release_date

如果这是我做的 Udacity 纳米学位课程,那么您正在寻找

poster_path
,因此您错误所在的第一行可能应该类似于
val movie = movies[position].poster_path

但请检查您的电影数据类以确定。

© www.soinside.com 2019 - 2024. All rights reserved.