2016-01-22 19 views
7

Tôi đã làm việc này một lúc và đã đến lúc hỏi một câu hỏi SO về nó.lực lượng trượt tải hình ảnh được lưu vào bộ nhớ cache, không quan tâm đến độ phân giải

Find and load cached Image in Glide trông giống như vậy, nhưng theo các liên kết và thảo luận trên trang của Glide, nó không hoạt động đối với tôi.

Trên hoạt động A, tôi tải hình ảnh qua URL trong một ImageView.

Sau đó, tôi chuyển sang ngoại tuyến với thiết bị. Sau đó, tôi mở Hoạt động B, nơi tôi tải cùng một URL trong một khác nhau ImageView, có các thứ nguyên khác. Nó chỉ hoạt động nếu chiều rộng và chiều cao bằng với ImageView trên Hoạt động A hoặc bạn cung cấp override() với chiều rộng và chiều cao của số ImageView đầu tiên đó. Nhưng hoạt động B không biết về điều đó.

Tôi làm điều này trong Hoạt động A:

Glide.with(context) 
    .load(url) 
    .diskCacheStrategy(DiskCacheStrategy.ALL) 
    .placeholder(R.drawable.placeholder) 
    .crossFade() 
    .into(image); 

và trong hoạt động BI làm:

Glide.with(mContext) 
    .load(url) 
    .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
    .into(imageView); 

tôi đã cố gắng trên, bởi vì tôi nghĩ chiến lược đĩa sẽ lưu giữ bản gốc quá, vì vậy nó sẽ tải cái đó lên. Kết quả là không có hình ảnh nào được tải.

Tôi đang nghĩ đến việc quay trở lại Picasso, bởi vì tôi nghĩ điều này có thể xảy ra ở đó, nhưng tôi thử lại Stackoverflow.

Tôi sẽ ném tiền thưởng ngay nếu có thể ...

Trả lời

9

Bạn có thể thử mã sau cho Hoạt động B không?

Glide.with(mContext) 
    .load(url) 
    .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
    .into(imageView); 
+1

WTH, điều này dường như hoạt động! Nhưng tại sao? Tôi mặc dù chiến lược bộ nhớ cache chỉ áp dụng để tải xuống/độ phân giải hình ảnh nào được lưu, nhưng không có định dạng nào được tải. Bạn có thể giải thích? – Boy

+0

DiskCacheStrategy.SOURCE lưu dữ liệu gốc vào bộ nhớ cache. – ap6491

+0

Tôi hiểu rằng nó sẽ làm điều đó trong khi tải xuống. Nhưng tôi không có kết nối internet khi chạy mã này, do đó, bộ nhớ đệm không áp dụng: không có gì để tải xuống. Hay nó cố gắng để lưu bản gốc chỉ, mà không hoạt động vì thiếu internet, và sau đó thay đổi kích thước ban đầu (đã được lưu trữ) để chiều rộng và chiều cao của ImageView? – Boy

Các vấn đề liên quan