Tôi đang cố gắng tải một mảng gồm 20 url trong nền bằng Picasso. Cho đến nay tôi có mã tiếp theo:Tải nhiều hình ảnh với Picasso trên nền
Log.d("GAME", "Loading all images");
for (int i = gamePieces.length-1; i >= 0; i--) {
GamePiece p = gamePieces[i];
Log.d("GAME", "I will load " + p.getImage());
Picasso.with(context).load(p.getImage()).into(target);
}
//loading the first one
Picasso.with(context).load(piece.getImage()).into(target);
Và đối tượng target
của tôi là tiếp theo một:
Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Log.d("GAME", "Image loaded" + ++test);
gameImage.setImageBitmap(bitmap); //ImageView to show the images
}
@Override
public void onBitmapFailed(Drawable arg0) {}
@Override
public void onPrepareLoad(Drawable arg0) {}
};
Tôi muốn trước tải những hình ảnh vì vậy tôi có thể hiển thị từng người một trong ImageView bất cứ lúc nào người dùng nhấp vào một nút.
Hình ảnh đầu tiên tải quá nhanh (thật tuyệt) nhưng các hình ảnh khác ở vòng lặp for không bao giờ tải. Làm thế nào tôi có thể sửa lỗi này? tôi cần những hình ảnh để bắt đầu tải trong vòng lặp for.
1.) LUÔN LUÔN giữ một tham chiếu mạnh mẽ để Picasso mục tiêu một nơi nào đó bởi vì Picasso chính nó sẽ chỉ k eep một WeakReference - và Target sẽ được thu thập rác trước khi tải hình ảnh được thực hiện. 2.) Tôi không hoàn toàn chắc chắn, nhưng từ mã nguồn có vẻ như Picasso sẽ chỉ xử lý một yêu cầu cho mỗi trường hợp của Target hoặc ImageView mà bạn chuyển vào một 'vào()' - có thể có một cái nhìn chính mình để (dis-)xác nhận. –
@ david.mihola Làm thế nào tôi có thể giữ một tham chiếu mạnh mẽ đến các mục tiêu Picasso? Bạn có ý nghĩa gì bởi "có thể có một cái nhìn chính mình để (dis-) xác nhận" là một phương pháp? –