0
다음 코드를 사용하여 Fresco를 사용하여 Recycler View에서 이미지를로드합니다. 현재 이미지 로딩은 사용자가 항목으로 스크롤하는 즉시 시작되며 Fresco는 이미지를로드하고 나중에 또는 캐시에서 다음에 이미지를로드하기 위해 캐시합니다. 처음부터 이미지를 빠르게 불러올 수 있도록 미리 캐시하는 방법이 있습니까? 프레스코는 프리 페치를 지원프리 캐시하는 방법 2-3 Recycler에서 Fresco를 사용하는 이미지보기
public class ProductFeedsRecyclerAdapterV2 extends RecyclerView.Adapter<ProductFeedsRecyclerAdapterV2.ViewHolder> {
private static final String TAG = ProductFeedsRecyclerAdapterV2.class.getSimpleName();
private List<ProductFeed> mItems;
private float ratio;
Context context;
String user_id;
public ProductFeedsRecyclerAdapterV2(Context context, List<ProductFeed> items) {
mItems = items;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_item_brand_feed, viewGroup, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int i) {
final ProductFeed feed = mItems.get(i);
CircleProgressBarDrawable drawable = new CircleProgressBarDrawable();
drawable.setBackgroundColor(context.getResources().getColor(R.color.gray));
drawable.setColor(context.getResources().getColor(R.color.colorAccent));
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(context.getResources());
GenericDraweeHierarchy hierarchy = builder
.setFadeDuration(100)
.setProgressBarImage(drawable)
.build();
hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.FOCUS_CROP);
hierarchy.setActualImageFocusPoint(new PointF(0.5f,0f));
Uri uri = Uri.parse(feed.image);
viewHolder.ivBrandImage.setImageURI(uri);
viewHolder.ivBrandImage.setHierarchy(hierarchy);
viewHolder.ivBrandImage.setAspectRatio(1.15f);
}
@Override
public int getItemCount() {
return mItems.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.ivBrandImage) SimpleDraweeView ivBrandImage;
ViewHolder(View v) {
super(v);
ButterKnife.bind(this, v);
}
}
}
github 페이지를 살펴보면 Fresco는 이미 비트 맵을 캐시합니다. – rhari
예 프레스코는 사용자가 항목으로 스크롤 할 때 이미지를로드하고 캐시하기 시작합니다. 따라서 이미지가 서버에서 가져올 때 이미지를로드하는 데 처음으로 시간이 걸리고 다음에 프레스코에서 캐시에서 페치합니다. – Sam