Retrofit 및 Glide를 사용하여 이미지 다운로드

표트르 자렘 바

https://picsum.photos/의 이미지 를 recyclerView를 사용하여 imageView 에 표시하고 싶습니다 . "https://picsum.photos/200"은 임의의 정사각형 (200x200) 이미지를 가져옵니다. 글라이드를 올바르게 사용하고 있는지 확실하지 않습니다 (링크가있는 배열 목록의 경우 완벽하게 작동 함). 나는 어떤 힌트를 제공합니다. 감사! 편집 : 모든 코드가있는 repo 링크 : https://github.com/LightingTT/RecycleViewPictures

이것은 내 ApiService입니다.

public interface ApiService {

@GET("200/")
Call<List<Pictures>> getFile();

ApiClient :

public class ApiClient {
public static String BASE_URL = "https://picsum.photos/";
private static Retrofit retrofit;
public static Retrofit getClient(){
if(retrofit == null){
    retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
}
    return retrofit;
}

개체 클래스 :

public class Pictures {

@SerializedName("picture")
private String picturesUrl;

public Pictures (String picturesUrl)
{
    this.picturesUrl = picturesUrl;
}

public String getImageUrl() {
    return picturesUrl;
}

어댑터:

public class MyRecycleAdapter extends RecyclerView.Adapter<MyRecycleAdapter.ViewHolderClass> {

private static final String TAG = "MainActivity";
private Context context;
private List<Pictures> imageList;

//Constructor
public MyRecycleAdapter(Context context, List<Pictures> imageList)
{
    this.context = context;
    this.imageList = imageList;
}
//
public void setMyRecycleAdapter(List<Pictures> imageList)
{
    this.imageList = imageList;
    notifyDataSetChanged();
}

@NonNull
@Override
public ViewHolderClass onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(context).inflate(R.layout.single_picture_view, parent, false);
    ViewHolderClass linearViewHolderClass = new ViewHolderClass(view);
    return linearViewHolderClass;
}

@Override
public void onBindViewHolder(@NonNull ViewHolderClass holder, int position) {
    Glide
                    .with(context)
                    .load(imageList.get(position).getImageUrl())
                    .into(holder.imageView);
    Log.d(TAG, "onBindViewHolder: ------>called<-----");
}

@Override
public int getItemCount() {
    return imageList.size();
}

public class ViewHolderClass extends RecyclerView.ViewHolder{

    private ImageView imageView;

    //Constructor
    public ViewHolderClass(@NonNull View itemView) {
        super(itemView);
        imageView = itemView.findViewById(R.id.single_picture_id);
    }
}

그리고 MainActivity :

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";
MyRecycleAdapter recyclerAdapter;
List<Pictures> imageList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageList = new ArrayList<>();

    //Create RecycleView object and pin view
    RecyclerView recycleView = findViewById(R.id.linear_layout_with_recycleView_ID);
    GridLayoutManager linearLayoutManager = new GridLayoutManager (this, 2);

    //Setup Adapter
    recycleView.setLayoutManager(linearLayoutManager);
    recyclerAdapter = new MyRecycleAdapter(MainActivity.this, imageList);
    recycleView.setAdapter(recyclerAdapter);

    Log.d(TAG, "onCreate: ------>called<-----");
    
    //Creating reference for MyService and receiving deserialized data.
    ApiService apiClient = ApiClient.getClient().create(ApiService.class);
    Call<List<Pictures>> call = apiClient.getFile();

    call.enqueue(new Callback<List<Pictures>>() {
        @Override
        public void onResponse(Call<List<Pictures>> call, Response<List<Pictures>> response) {
            imageList = response.body();
            Log.d(TAG, "onResponse: ------>called<-----");
            recyclerAdapter.setMyRecycleAdapter(imageList);
        }

        @Override
        public void onFailure(Call<List<Pictures>> call, Throwable t) {
            Log.d("TAG","onFailure = ------>called<----- "+t.toString());
        }
    });

}

}

표트르 자렘 바

내가 잘못된 API를 요청한 것 같습니다. 그것은해야한다

public interface ApiService {

@GET("/v2/list")
Call<List<Pictures>> getFile();

}

그리고 객체 클래스가 잘못되었습니다. http://www.jsonschema2pojo.org/에서 생성

public class Pictures {

@SerializedName("id")
@Expose
private String id;

@SerializedName("author")
@Expose
private String author;

@SerializedName("width")
@Expose
private Integer width;

@SerializedName("height")
@Expose
private Integer height;

@SerializedName("url")
@Expose
private String url;

@SerializedName("download_url")
@Expose
private String downloadUrl;

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getAuthor() {
    return author;
}

public void setAuthor(String author) {
    this.author = author;
}

public Integer getWidth() {
    return width;
}

public void setWidth(Integer width) {
    this.width = width;
}

public Integer getHeight() {
    return height;
}

public void setHeight(Integer height) {
    this.height = height;
}

public String getUrl() {
    return url;
}

public void setUrl(String url) {
    this.url = url;
}

public String getDownloadUrl() {
    return downloadUrl;
}

public void setDownloadUrl(String downloadUrl) {
    this.downloadUrl = downloadUrl;
}

}

이제 작동하고 gridview에서 멋진 무작위 사진을 표시합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Retrofit 2.0 및 Spring Server를 사용하여 파일 다운로드

분류에서Dev

Retrofit 2를 사용하여 큰 이미지 업로드

분류에서Dev

PHP 및 Ajax를 사용하여 HTML 페이지 다운로드

분류에서Dev

dom to image 및 filesaver를 사용하여 이미지를 다운로드하기 전에 바닥 글 추가

분류에서Dev

Glide를 사용하여 MenuItem에서 원격 이미지로드

분류에서Dev

Android에서 Glide를 사용하여 이미지로드

분류에서Dev

Retrofit을 사용하여 URL에서 이미지를 다운로드하고 알림 아이콘으로 설정하는 방법

분류에서Dev

Retrofit과 함께 Robospice를 사용하여 Google AppEngine에 이미지 업로드

분류에서Dev

jQuery를 사용하여 레이블 및 이미지로드

분류에서Dev

htaccess를 사용하여 강제로 이미지 다운로드

분류에서Dev

alamofire를 사용하여 이미지 다운로드-iOS

분류에서Dev

글라이드 라이브러리를 사용하여 이미 다운로드 및 캐시 된 이미지 가져 오기

분류에서Dev

범용 이미지 로더를 사용하여 이미지 저장 및 laod

분류에서Dev

데이터베이스에서 이미지 세트를 다운로드하고 HTTPRequest 및 HTTPResponse를 사용하여 Picturebox C #에 표시합니다.

분류에서Dev

Retrofit 및 Picasso를 사용하는 Kotlin 디스플레이 이미지 배열

분류에서Dev

NodeJS 및 async.queue를 사용하여 많은 이미지를 로컬 디스크에 다운로드 및 저장

분류에서Dev

html 및 css를 사용하여 이미지 그리드 수정

분류에서Dev

PrimeFaces 및 JSF를 사용하여 이미지 업로드 및 저장

분류에서Dev

Retrofit Library를 사용하여 알림으로 여러 다운로드 처리

분류에서Dev

SDWebimage를 사용하여 URL로 이미지를 하나씩 다운로드

분류에서Dev

html2canvas JS를 사용하여 현재 화면을 PDF 및 이미지로 다운로드하는 방법은 무엇입니까?

분류에서Dev

기본 기능 IOS를 사용하여 여러 이미지 다운로드

분류에서Dev

phprets를 사용하여 rets 피드에서 이미지 다운로드

분류에서Dev

OkHttp를 사용하여 SD 카드에 많은 이미지 다운로드

분류에서Dev

Python을 사용하여 이미지를 다운로드 할 수 없습니다.

분류에서Dev

Objective-C를 사용하여 iPad로 이미지 다운로드

분류에서Dev

iOS 7의 핵심 데이터를 사용하여 이미지 다운로드

분류에서Dev

iOS 7의 핵심 데이터를 사용하여 이미지 다운로드

분류에서Dev

Nokia 이미징 SDK를 사용하여 다운로드 한 이미지를 사용할 수 없습니다.

Related 관련 기사

  1. 1

    Retrofit 2.0 및 Spring Server를 사용하여 파일 다운로드

  2. 2

    Retrofit 2를 사용하여 큰 이미지 업로드

  3. 3

    PHP 및 Ajax를 사용하여 HTML 페이지 다운로드

  4. 4

    dom to image 및 filesaver를 사용하여 이미지를 다운로드하기 전에 바닥 글 추가

  5. 5

    Glide를 사용하여 MenuItem에서 원격 이미지로드

  6. 6

    Android에서 Glide를 사용하여 이미지로드

  7. 7

    Retrofit을 사용하여 URL에서 이미지를 다운로드하고 알림 아이콘으로 설정하는 방법

  8. 8

    Retrofit과 함께 Robospice를 사용하여 Google AppEngine에 이미지 업로드

  9. 9

    jQuery를 사용하여 레이블 및 이미지로드

  10. 10

    htaccess를 사용하여 강제로 이미지 다운로드

  11. 11

    alamofire를 사용하여 이미지 다운로드-iOS

  12. 12

    글라이드 라이브러리를 사용하여 이미 다운로드 및 캐시 된 이미지 가져 오기

  13. 13

    범용 이미지 로더를 사용하여 이미지 저장 및 laod

  14. 14

    데이터베이스에서 이미지 세트를 다운로드하고 HTTPRequest 및 HTTPResponse를 사용하여 Picturebox C #에 표시합니다.

  15. 15

    Retrofit 및 Picasso를 사용하는 Kotlin 디스플레이 이미지 배열

  16. 16

    NodeJS 및 async.queue를 사용하여 많은 이미지를 로컬 디스크에 다운로드 및 저장

  17. 17

    html 및 css를 사용하여 이미지 그리드 수정

  18. 18

    PrimeFaces 및 JSF를 사용하여 이미지 업로드 및 저장

  19. 19

    Retrofit Library를 사용하여 알림으로 여러 다운로드 처리

  20. 20

    SDWebimage를 사용하여 URL로 이미지를 하나씩 다운로드

  21. 21

    html2canvas JS를 사용하여 현재 화면을 PDF 및 이미지로 다운로드하는 방법은 무엇입니까?

  22. 22

    기본 기능 IOS를 사용하여 여러 이미지 다운로드

  23. 23

    phprets를 사용하여 rets 피드에서 이미지 다운로드

  24. 24

    OkHttp를 사용하여 SD 카드에 많은 이미지 다운로드

  25. 25

    Python을 사용하여 이미지를 다운로드 할 수 없습니다.

  26. 26

    Objective-C를 사용하여 iPad로 이미지 다운로드

  27. 27

    iOS 7의 핵심 데이터를 사용하여 이미지 다운로드

  28. 28

    iOS 7의 핵심 데이터를 사용하여 이미지 다운로드

  29. 29

    Nokia 이미징 SDK를 사용하여 다운로드 한 이미지를 사용할 수 없습니다.

뜨겁다태그

보관