У меня очень базовая c реализация модернизации:
public interface MoviesApi {
@GET(Constants.POPULAR_MOVIES_URL)
Call<AllMovies> getAllMovies(
@Query("api_key") String apiKey
);
}
ViewModel :
Call<AllMovies> call = RetrofitService.getAllMovies().getAllMovies(Constants.API_KEY);
call.enqueue(new Callback<AllMovies>() {
@Override
public void onResponse(Call<AllMovies> call, Response<AllMovies> response) {
staus.setValue(Status.SUCCESS);
Log.i(TAG, "onResponse: " + response.body());
_allMovies.setValue(response.body());
}
@Override
public void onFailure(Call<AllMovies> call, Throwable t) {
Log.i(TAG, "onResponse: " + t.getMessage());
}
});
И я использую его внутри своего recyclerView
:
String currentUrl = "https://images-na.ssl-images-amazon.com/images/I/518jo3Xlf8L._AC_.jpg";
holder.title_text.setText(movieItem.getTitle());
Glide.with(holder.itemView.getContext())
.load(currentUrl)
.apply(new RequestOptions().override(400, 600))
.into(holder.imageView);
}
Здесь ничего особенного.
Мой ответ содержит это поле:
"poster_path": "/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg"
, которое я должен получить отсюда:
https://image.tmdb.org/t/p
Мой вопрос: - где мне взять это изображение?
Должен ли я создать новое поле image
в моей модели mov ie и сразу после того, как я позвоню getAllMovies
I должен вызвать, например, getPoster
, а затем вставить данные в поле image
, которое я создал?
Или просто получить прямо из glide?
Стоит упомянуть, что мне нужно передать это изображение на другой экран, когда я нажимаю на элемент recyclerView, например
Должен ли я создавать 2 экземпляра модернизации для 2 базовых URL-адресов (изображение и фильмы имеют другой базовый URL-адрес)?
Ссылка для tmdb документы изображений: https://developers.themoviedb.org/3/getting-started/images