@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_sale_skidkaonline, container, false); setHasOptionsMenu(true); setRetainInstance(true); sale = getArguments().getParcelable(CURRENT_SALE_TAG); progressBar = (CircularProgressView) rootView.findViewById(R.id.fragment_sale_progressbar); imageView = (SubsamplingScaleImageView) rootView.findViewById(R.id.fragment_sale_imageview); imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CUSTOM); imageView.setMaxScale(getResources().getDimension(R.dimen.image_maximum_scale)); File smallFile = ImageLoader.getInstance().getDiskCache().get(sale.getSmallImageUrl()); if (smallFile != null) { imageView.setImage(ImageSource.uri(smallFile.getAbsolutePath())); loadBigImage(); } else { ImageLoader.getInstance() .loadImage( sale.getSmallImageUrl(), null, UIL.getScaleImageOptions(), new ImageLoadingListener() { @Override public void onLoadingStarted(String s, View view) { progressBar.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String s, View view, FailReason failReason) { progressBar.setVisibility(View.GONE); } @Override public void onLoadingComplete(String s, View view, Bitmap bitmap) { File smallFile = ImageLoader.getInstance().getDiskCache().get(sale.getSmallImageUrl()); if (smallFile != null) { imageView.setImage(ImageSource.uri(smallFile.getAbsolutePath())); } bitmap.recycle(); loadBigImage(); } @Override public void onLoadingCancelled(String s, View view) {} }, new ImageLoadingProgressListener() { @Override public void onProgressUpdate(String s, View view, int progress, int size) { progressBar.setProgress(progress * 500 / size); } }); } return rootView; }
@Override public void onBindViewHolder(final ViewHolder holder, int position) { Category category = publishItems.get(position); ImageLoader.getInstance() .displayImage(category.getImageUrl(), holder.image, UIL.getImageOptions()); holder.name.setText(category.getName()); if (category.isFavorite()) { holder.favorite.setImageResource(R.mipmap.ic_star_amber_24dp); } else { holder.favorite.setImageResource(R.mipmap.ic_star_outline_amber_24dp); } holder.favorite.setTag(category); holder.favorite.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if (!(v.getTag() instanceof Category)) throw new RuntimeException("Category in tag instanceof error"); Category shop = (Category) v.getTag(); shop.setFavorite(!shop.isFavorite()); notifyItemChanged(publishItems.indexOf(shop)); shop.updateOrAddToDB(); callback.onFavoriteChanged(shop); } }); holder.setClickListener( new ViewHolder.ClickListener() { @Override public void onClick(View v, int position) { callback.onItemClick(v, position); } }); }
private void loadBigImage() { ImageLoader.getInstance() .loadImage( sale.getImageUrl(), null, UIL.getScaleImageOptions(), new ImageLoadingListener() { @Override public void onLoadingStarted(String s, View view) { progressBar.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String s, View view, FailReason failReason) { progressBar.setVisibility(View.GONE); } @Override public void onLoadingComplete(String s, View view, Bitmap bitmap) { File file = ImageLoader.getInstance().getDiskCache().get(sale.getImageUrl()); if (file != null) { imageView.setImage(ImageSource.uri(file.getAbsolutePath())); } progressBar.setVisibility(View.GONE); } @Override public void onLoadingCancelled(String s, View view) {} }, new ImageLoadingProgressListener() { @Override public void onProgressUpdate(String s, View view, int progress, int size) { progressBar.setProgress(500 + progress * 500 / size); } }); }