Java Code Examples for com.bumptech.glide.load.resource.bitmap.RoundedCorners

The following examples show how to use com.bumptech.glide.load.resource.bitmap.RoundedCorners. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
public ListenableFuture<Boolean> setImageResource(@NonNull GlideRequests glideRequests, @NonNull Uri uri, int width, int height) {
  SettableFuture<Boolean> future = new SettableFuture<>();

  if (transferControls.isPresent()) getTransferControls().setVisibility(View.GONE);

  GlideRequest request = glideRequests.load(new DecryptableUri(uri))
                                      .diskCacheStrategy(DiskCacheStrategy.NONE)
                                      .transition(withCrossFade());

  if (width > 0 && height > 0) {
    request = request.override(width, height);
  }

  if (radius > 0) {
    request = request.transforms(new CenterCrop(), new RoundedCorners(radius));
  } else {
    request = request.transforms(new CenterCrop());
  }

  request.into(new GlideDrawableListeningTarget(image, future));
  blurhash.setImageDrawable(null);

  return future;
}
 
Example 2
private GlideRequest applySizing(@NonNull GlideRequest request, @NonNull BitmapTransformation fitting) {
  int[] size = new int[2];
  fillTargetDimensions(size, dimens, bounds);
  if (size[WIDTH] == 0 && size[HEIGHT] == 0) {
    size[WIDTH]  = getDefaultWidth();
    size[HEIGHT] = getDefaultHeight();
  }

  request = request.override(size[WIDTH], size[HEIGHT]);
  
  if (radius > 0) {
    return request.transforms(fitting, new RoundedCorners(radius));
  } else {
    return request.transforms(fitting);
  }
}
 
Example 3
Source Project: titanium-imagepicker   Source File: ImageViewerActivity.java    License: Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
private void setupGlideOptions() {
   	options = new RequestOptions();

   	if (isShapeCircle) {
   		if (Defaults.CIRCLE_RADIUS > 0) {
   			options.transforms(new CenterCrop(), new RoundedCorners(Defaults.CIRCLE_RADIUS));

   		} else {
   			options.circleCrop();
   		}
   	}

   	options.override(Defaults.IMAGE_HEIGHT, Defaults.IMAGE_HEIGHT);
   	options.placeholder(placeholder_image);
   	options.priority(Priority.HIGH);
}
 
Example 4
Source Project: titanium-imagepicker   Source File: ImagePickerActivity.java    License: Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
private void setupGlideOptions() {
   	options = new RequestOptions();
   	int size;

   	if (isShapeCircle) {
   		if (Defaults.CIRCLE_RADIUS > 0) {
   			size = (int) (0.65 * Defaults.IMAGE_HEIGHT);
   			options.transforms(new CenterCrop(), new RoundedCorners(Defaults.CIRCLE_RADIUS));

   		} else {
   			size = Defaults.IMAGE_HEIGHT;
   			options.circleCrop();
   		}

   	} else {
   		size = (int) (0.65 * Defaults.IMAGE_HEIGHT);
   	}

   	options.override(size, size);
   	options.error(error_image);
   	options.priority(Priority.HIGH);
   }
 
Example 5
Source Project: titanium-imagepicker   Source File: ImageViewerActivity.java    License: Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
private void setupGlideOptions() {
   	options = new RequestOptions();

   	if (isShapeCircle) {
   		if (Defaults.CIRCLE_RADIUS > 0) {
   			options.transforms(new CenterCrop(), new RoundedCorners(Defaults.CIRCLE_RADIUS));

   		} else {
   			options.circleCrop();
   		}
   	}

   	options.override(Defaults.IMAGE_HEIGHT, Defaults.IMAGE_HEIGHT);
   	options.placeholder(placeholder_image);
   	options.priority(Priority.HIGH);
}
 
Example 6
Source Project: titanium-imagepicker   Source File: ImagePickerActivity.java    License: Apache License 2.0 6 votes vote down vote up
@SuppressWarnings({ "unchecked", "deprecation" })
private void setupGlideOptions() {
    	options = new RequestOptions();
    	int size;

    	if (isShapeCircle) {
    		if (Defaults.CIRCLE_RADIUS > 0) {
    			size = (int) (0.65 * Defaults.IMAGE_HEIGHT);
    			options.transforms(new CenterCrop(), new RoundedCorners(Defaults.CIRCLE_RADIUS));

    		} else {
    			size = Defaults.IMAGE_HEIGHT;
    			options.circleCrop();
    		}

    	} else {
    		size = (int) (0.65 * Defaults.IMAGE_HEIGHT);
    	}

    	options.override(size, size);
    	options.error(error_image);
    	options.priority(Priority.HIGH);
   }
 
Example 7
public Target<Drawable> loadWithColorPlaceholderRoundCorners(String image, int radius,
    ImageView previewImage, @AttrRes int colorResource,
    RequestListener<Drawable> requestListener) {
  Context context = weakContext.get();
  if (context != null) {
    return Glide.with(context)
        .load(image)
        .apply(getRequestOptions().centerCrop()
            .placeholder(new ColorDrawable(getAttrColor(colorResource)))
            .transforms(new CenterCrop(), new RoundedCorners(radius)))
        .listener(requestListener)
        .transition(DrawableTransitionOptions.withCrossFade())
        .into(previewImage);
  }
  return null;
}
 
Example 8
Source Project: hipda   Source File: GlideHelper.java    License: GNU General Public License v2.0 6 votes vote down vote up
public static void loadAvatar(RequestManager glide, ImageView view, String avatarUrl) {
    avatarUrl = Utils.nullToText(avatarUrl);
    String cacheKey = AVATAR_CACHE_KEYS.get(avatarUrl);
    if (cacheKey == null) {
        cacheKey = avatarUrl;
    }
    if (HiSettingsHelper.getInstance().isCircleAvatar()) {
        glide.load(new AvatarModel(avatarUrl))
                .signature(new ObjectKey(cacheKey))
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                .circleCrop()
                .error(DEFAULT_USER_ICON)
                .transition(DrawableTransitionOptions.withCrossFade())
                .into(view);
    } else {
        glide.load(new AvatarModel(avatarUrl))
                .signature(new ObjectKey(cacheKey))
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                .transform(new CenterCrop(), new RoundedCorners(Utils.dpToPx(4)))
                .error(DEFAULT_USER_ICON)
                .transition(DrawableTransitionOptions.withCrossFade())
                .into(view);
    }
}
 
Example 9
Source Project: DevUtils   Source File: ProjectUtils.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * 获取圆角 RequestOptions
 * @return 圆角 {@link RequestOptions}
 */
public static RequestOptions getRoundOptions() {
    if (sRoundOptions == null) {
        // 获取默认 RequestOptions
        sRoundOptions = GlideUtils.defaultOptions();
        // 设置圆角, 使用 RoundedCorners 图片不会闪烁
        sRoundOptions.transform(new RoundedCorners(ResourceUtils.getDimensionInt(R.dimen.un_radius)));
    }
    return sRoundOptions;
}
 
Example 10
Source Project: DevUtils   Source File: ProjectUtils.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * 获取圆角 RequestOptions
 * @return 圆角 {@link RequestOptions}
 */
public static RequestOptions getRoundOptions10() {
    // 获取默认 RequestOptions
    RequestOptions roundOptions = GlideUtils.defaultOptions();
    // 设置圆角, 使用 RoundedCorners 图片不会闪烁
    return roundOptions.transform(new RoundedCorners(ResourceUtils.getDimensionInt(R.dimen.un_radius_10)));
}
 
Example 11
Source Project: PopularMovies   Source File: BindingAdapters.java    License: MIT License 5 votes vote down vote up
/**
 * Movie details poster image
 */
@BindingAdapter({"imageUrl"})
public static void bindImage(ImageView imageView, String imagePath) {
    GlideApp.with(imageView.getContext())
            .load(Constants.IMAGE_URL + imagePath)
            .placeholder(R.color.md_grey_200)
            .apply(new RequestOptions().transforms(new CenterCrop(),
                    new RoundedCorners((int) UiUtils.dipToPixels(imageView.getContext(), 8))))
            .into(imageView);
}
 
Example 12
Source Project: NewsApp   Source File: NewsGlideModule.java    License: GNU General Public License v3.0 5 votes vote down vote up
@NonNull
@GlideOption
public static RequestOptions roundedCornerImage(RequestOptions options, @NonNull Context context, int radius) {
    if (radius > 0) {
        int px = Math.round(radius * (context.getResources().getDisplayMetrics().xdpi / DisplayMetrics.DENSITY_DEFAULT));
        return options.transforms(new CenterCrop(), new RoundedCorners(px));
    }
    return options.transforms(new CenterCrop());
}
 
Example 13
Source Project: VMLibrary   Source File: PickerLoader.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * 通过上下文对象加载图片
 *
 * @param context   上下文对象
 * @param options   加载配置
 * @param imageView 目标控件
 */
@Override
public void load(Context context, Options options, ImageView imageView) {
    RequestOptions requestOptions = new RequestOptions();
    if (options.isCircle) {
        requestOptions.circleCrop();
    } else if (options.isRadius) {
        requestOptions.transform(new MultiTransformation<>(new CenterCrop(), new RoundedCorners(options.radiusSize)));
    }
    GlideApp.with(context).load(options.url).apply(requestOptions).into(imageView);
}
 
Example 14
Source Project: XDroidMvp   Source File: GlideLoader.java    License: MIT License 5 votes vote down vote up
@Override
public void loadCorner(String url, final ImageView target, int radius, Options options) {
    RequestOptions requestOptions = wrapScaleType(options);

    //设置图片圆角角度
    MultiTransformation multiTransformation = new MultiTransformation<Bitmap>(new CenterCrop(), new RoundedCorners(radius));
    requestOptions.transform(multiTransformation);

    getRequestManager(target.getContext())
            .load(url)
            .apply(requestOptions)
            .transition(withCrossFade())
            .into(target);

}
 
Example 15
public void loadWithRoundCorners(String image, int radius, ImageView previewImage,
    @AttrRes int placeHolderDrawableId) {
  Context context = weakContext.get();
  if (context != null) {
    Glide.with(context)
        .load(image)
        .apply(getRequestOptions().centerCrop()
            .placeholder(getAttrDrawable(placeHolderDrawableId))
            .transforms(new CenterInside(), new RoundedCorners(radius)))
        .transition(DrawableTransitionOptions.withCrossFade())
        .into(previewImage);
  }
}
 
Example 16
public Target<Drawable> loadWithRoundCorners(String image, int radius, ImageView previewImage,
    @AttrRes int placeHolderDrawableId, RequestListener<Drawable> requestListener) {
  Context context = weakContext.get();
  if (context != null) {
    return Glide.with(context)
        .load(image)
        .apply(getRequestOptions().centerCrop()
            .placeholder(getAttrDrawable(placeHolderDrawableId))
            .transforms(new CenterCrop(), new RoundedCorners(radius)))
        .listener(requestListener)
        .transition(DrawableTransitionOptions.withCrossFade())
        .into(previewImage);
  }
  return null;
}
 
Example 17
public ListenableFuture<Boolean> setImageResource(@NonNull GlideRequests glideRequests, @NonNull Uri uri) {
  SettableFuture<Boolean> future = new SettableFuture<>();

  glideRequests.load(new DecryptableUri(uri))
               .diskCacheStrategy(DiskCacheStrategy.NONE)
               .transforms(new CenterCrop(), new RoundedCorners(radius))
               .transition(withCrossFade())
               .into(new GlideDrawableListeningTarget(image, future));

  return future;
}
 
Example 18
private GlideRequest applySizing(@NonNull GlideRequest request, @NonNull BitmapTransformation fitting) {
  int[] size = new int[2];
  fillTargetDimensions(size, dimens, bounds);
  if (size[WIDTH] == 0 && size[HEIGHT] == 0) {
    size[WIDTH]  = getDefaultWidth();
    size[HEIGHT] = getDefaultHeight();
  }
  return request.override(size[WIDTH], size[HEIGHT])
                .transforms(fitting, new RoundedCorners(radius));
}
 
Example 19
Source Project: NIM_Android_UIKit   Source File: GlideImageLoader.java    License: MIT License 5 votes vote down vote up
@Override
public void displayImage(Context context, String path, ImageView imageView, int width, int height) {
    RequestOptions options = new RequestOptions()
            .placeholder(R.drawable.nim_placeholder_normal_impl)     //设置占位图片
            .error(R.drawable.nim_placeholder_normal_impl)           //设置错误图片
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .transforms(new CenterCrop(), new RoundedCorners(ScreenUtil.dip2px(4)))
            .override(width, height)
            .dontAnimate();          //缓存全尺寸
    Glide.with(context)                             //配置上下文
         .asDrawable()
         .apply(options)
         .load(Uri.fromFile(new File(path)))      //设置图片路径(fix #8,文件名包含%符号 无法识别和显示)
         .into(imageView);
}
 
Example 20
@Override
    public void loadImage(Context ctx, CommonImageConfigImpl config) {
        Preconditions.checkNotNull(ctx, "Context is required");
        Preconditions.checkNotNull(config, "ImageConfigImpl is required");
        if (TextUtils.isEmpty(config.getUrl())) throw new NullPointerException("Url is required");
        Preconditions.checkNotNull(config.getImageView(), "ImageView is required");


        GlideRequests requests;

        requests = GlideArms.with(ctx);//如果context是activity则自动使用Activity的生命周期

        GlideRequest<Drawable> glideRequest = requests.load(config.getUrl());
//

        switch (config.getCacheStrategy()) {//缓存策略
            case 0:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.ALL);
                break;
            case 1:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.NONE);
                break;
            case 2:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.RESOURCE);
                break;
            case 3:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.DATA);
                break;
            case 4:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC);
                break;
            default:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.ALL);
                break;
        }
        if (config.isCrossFade()) {
            glideRequest.transition(DrawableTransitionOptions.withCrossFade());
        }

        if (config.isImageRadius()) {
            glideRequest.transform(new RoundedCorners(config.getImageRadius()));
        }

        if (config.isBlurImage()) {
            glideRequest.transform(new BlurTransformation(config.getBlurValue()));
        }

        if (config.getTransformation() != null) {//glide用它来改变图形的形状
            glideRequest.transform(config.getTransformation());
        }

        if (config.getPlaceHolderDrawble() != null) {
            glideRequest.placeholder(config.getPlaceHolderDrawble());
        }
        if (config.getPlaceholder() != 0)//设置占位符
            glideRequest.placeholder(config.getPlaceholder());

        if (config.getErrorPic() != 0)//设置错误的图片
            glideRequest.error(config.getErrorPic());

        if (config.getFallback() != 0)//设置请求 url 为空图片
            glideRequest.fallback(config.getFallback());

        if (config.getResizeX() != 0 && config.getResizeY() != 0) {
            glideRequest.override(config.getResizeX(), config.getResizeY());
        }

        if (config.isCropCenter()) {
            glideRequest.centerCrop();
        }

        if (config.isCropCircle()) {
            glideRequest.circleCrop();
        }

        if (config.decodeFormate() != null) {
            glideRequest.format(config.decodeFormate());
        }

        if (config.isFitCenter()) {
            glideRequest.fitCenter();
        }

        glideRequest
                .into(config.getImageView());
    }
 
Example 21
Source Project: AndroidProject   Source File: TestFragmentC.java    License: Apache License 2.0 4 votes vote down vote up
@SingleClick
@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_test_image1:
            mImageView.setVisibility(View.VISIBLE);
            GlideApp.with(this)
                    .load("https://www.baidu.com/img/bd_logo.png")
                    .into(mImageView);
            break;
        case R.id.btn_test_image2:
            mImageView.setVisibility(View.VISIBLE);
            GlideApp.with(this)
                    .load("https://www.baidu.com/img/bd_logo.png")
                    .circleCrop()
                    .into(mImageView);
            break;
        case R.id.btn_test_image3:
            mImageView.setVisibility(View.VISIBLE);
            GlideApp.with(this)
                    .load("https://www.baidu.com/img/bd_logo.png")
                    .transform(new RoundedCorners((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, this.getResources().getDisplayMetrics())))
                    .into(mImageView);
            break;
        case R.id.btn_test_image4:
            PhotoActivity.start(getAttachActivity(), new PhotoActivity.OnPhotoSelectListener() {

                @Override
                public void onSelected(List<String> data) {
                    mImageView.setVisibility(View.VISIBLE);
                    GlideApp.with(getAttachActivity())
                            .load(data.get(0))
                            .into(mImageView);
                }

                @Override
                public void onCancel() {
                    toast("取消了");
                }
            });
            break;
        case R.id.btn_test_toast:
            toast("我是吐司");
            break;
        case R.id.btn_test_permission:
            XXPermissions.with(getAttachActivity())
                    // 可设置被拒绝后继续申请,直到用户授权或者永久拒绝
                    //.constantRequest()
                    // 支持请求6.0悬浮窗权限8.0请求安装权限
                    //.permission(Permission.SYSTEM_ALERT_WINDOW, Permission.REQUEST_INSTALL_PACKAGES)
                    // 不指定权限则自动获取清单中的危险权限
                    .permission(Permission.CAMERA)
                    .request(new OnPermission() {

                        @Override
                        public void hasPermission(List<String> granted, boolean isAll) {
                            if (isAll) {
                                toast("获取权限成功");
                            } else {
                                toast("获取权限成功,部分权限未正常授予");
                            }
                        }

                        @Override
                        public void noPermission(List<String> denied, boolean quick) {
                            if(quick) {
                                toast("被永久拒绝授权,请手动授予权限");
                                //如果是被永久拒绝就跳转到应用权限系统设置页面
                                XXPermissions.gotoPermissionSettings(getAttachActivity());
                            } else {
                                toast("获取权限失败");
                            }
                        }
                    });
            break;
        case R.id.btn_test_setting:
            XXPermissions.gotoPermissionSettings(getAttachActivity());
            break;
        case R.id.btn_test_state_black:
            if (getAttachActivity().getStatusBarConfig() != null) {
                getAttachActivity().getStatusBarConfig().statusBarDarkFont(true).init();
            }
            break;
        case R.id.btn_test_state_white:
            if (getAttachActivity().getStatusBarConfig() != null) {
                getAttachActivity().getStatusBarConfig().statusBarDarkFont(false).init();
            }
            break;
        default:
            break;
    }
}
 
Example 22
@Override
    public void loadImage(Context ctx, CommonImageConfigImpl config) {
        Preconditions.checkNotNull(ctx, "Context is required");
        Preconditions.checkNotNull(config, "ImageConfigImpl is required");
        if (TextUtils.isEmpty(config.getUrl())) throw new NullPointerException("Url is required");
        Preconditions.checkNotNull(config.getImageView(), "ImageView is required");


        GlideRequests requests;

        requests = GlideArms.with(ctx);//如果context是activity则自动使用Activity的生命周期

        GlideRequest<Drawable> glideRequest = requests.load(config.getUrl());
//

        switch (config.getCacheStrategy()) {//缓存策略
            case 0:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.ALL);
                break;
            case 1:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.NONE);
                break;
            case 2:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.RESOURCE);
                break;
            case 3:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.DATA);
                break;
            case 4:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC);
                break;
            default:
                glideRequest.diskCacheStrategy(DiskCacheStrategy.ALL);
                break;
        }
        if (config.isCrossFade()) {
            glideRequest.transition(DrawableTransitionOptions.withCrossFade());
        }

        if (config.isImageRadius()) {
            glideRequest.transform(new RoundedCorners(config.getImageRadius()));
        }

        if (config.isBlurImage()) {
            glideRequest.transform(new BlurTransformation(config.getBlurValue()));
        }

        if (config.getTransformation() != null) {//glide用它来改变图形的形状
            glideRequest.transform(config.getTransformation());
        }

        if (config.getPlaceHolderDrawble() != null) {
            glideRequest.placeholder(config.getPlaceHolderDrawble());
        }
        if (config.getPlaceholder() != 0)//设置占位符
            glideRequest.placeholder(config.getPlaceholder());

        if (config.getErrorPic() != 0)//设置错误的图片
            glideRequest.error(config.getErrorPic());

        if (config.getFallback() != 0)//设置请求 url 为空图片
            glideRequest.fallback(config.getFallback());

        if (config.getResizeX() != 0 && config.getResizeY() != 0) {
            glideRequest.override(config.getResizeX(), config.getResizeY());
        }

        if (config.isCropCenter()) {
            glideRequest.centerCrop();
        }

        if (config.isCropCircle()) {
            glideRequest.circleCrop();
        }

        if (config.decodeFormate() != null) {
            glideRequest.format(config.decodeFormate());
        }

        if (config.isFitCenter()) {
            glideRequest.fitCenter();
        }

        glideRequest
                .into(config.getImageView());
    }
 
Example 23
@Override
public void onBindViewHolder(@NonNull FileViewHolder holder, int position, @NonNull List<Object> payloads) {
    if (!payloads.isEmpty()) {
        holder.mChecker.setChecked(false);
    } else {
        final RipeFile item = files.get(holder.getLayoutPosition());
        holder.mTvName.setText(item.getName());
        if (item.isDirectory()) {
            holder.mIcon.setImageResource(R.drawable.ic_folder_black_24dp);
            AppCompat.setTint(holder.mIcon, holder.mChecker.getResources().getColor(R.color.colorAccent));
            holder.mIcon.setVisibility(View.VISIBLE);
            holder.mAdded.setVisibility(View.INVISIBLE);
            holder.mCover.setVisibility(View.INVISIBLE);
            holder.mTvTag.setVisibility(View.GONE);
            holder.mChecker.setVisibility(View.GONE);
            holder.mTvInfo.setText(String.format(Locale.getDefault(), "%d项 | %s", item.getChildCount(), item.getDate()));
        } else {
            holder.mTvTag.setVisibility(View.VISIBLE);
            holder.mChecker.setVisibility(View.VISIBLE);
            AppCompat.setTint(holder.mIcon, holder.mChecker.getResources().getColor(R.color.transparent));
            if (isImage) {
                holder.mIcon.setVisibility(View.INVISIBLE);
                holder.mAdded.setVisibility(View.INVISIBLE);
                holder.mCover.setVisibility(View.VISIBLE);
                Glide.with(fragment.get()).load(item.getPath())
                        .apply(new RequestOptions().placeholder(placeholder)
                                .transform(new CenterCrop(), new RoundedCorners(ScreenUtils.dpToPx(3))))
                        .transition(new DrawableTransitionOptions().crossFade())
                        .into(holder.mCover);
            } else if (checkBookAdded && isAdded(item.getFile())) {
                holder.mIcon.setVisibility(View.INVISIBLE);
                holder.mAdded.setVisibility(View.VISIBLE);
                holder.mCover.setVisibility(View.INVISIBLE);
                holder.mIcon.setImageResource(R.drawable.ic_book_added_black_24dp);
                holder.mChecker.setVisibility(View.GONE);
            } else {
                holder.mIcon.setVisibility(View.VISIBLE);
                holder.mAdded.setVisibility(View.INVISIBLE);
                holder.mCover.setVisibility(View.INVISIBLE);
                holder.mIcon.setImageResource(R.drawable.ic_file_black_24dp);
                AppCompat.setTint(holder.mIcon, holder.mChecker.getResources().getColor(R.color.colorTextSecondary));
            }
            holder.mTvTag.setText(item.getSuffix());
            holder.mTvInfo.setText(String.format(Locale.getDefault(), "%s | %s", item.getSize(), item.getDate()));
        }

        holder.mChecker.setChecked(item.isSelected());

        holder.itemView.setOnClickListener(v -> {
            if (fileNotExists(item, holder.getLayoutPosition())) {
                return;
            }

            if (!item.isDirectory() && !holder.mChecker.isShown()) {
                return;
            }

            if (singleChoice) {
                int index;
                if (lastSelectedFile != null && (index = files.indexOf(lastSelectedFile)) >= 0) {
                    if(index != holder.getLayoutPosition()) {
                        lastSelectedFile.setSelected(false);
                        notifyItemChanged(index, index);
                    }
                }

                if (!item.isDirectory()) {
                    item.setSelected(!item.isSelected());
                    holder.mChecker.setChecked(item.isSelected());
                    lastSelectedFile = item;
                }
            } else {
                if (!item.isDirectory()) {
                    item.setSelected(!item.isSelected());
                    holder.mChecker.setChecked(item.isSelected());
                }
            }

            if (itemClickListener != null) {
                itemClickListener.onItemClick(v, item);
            }
        });

        if (isImage) {
            holder.mCover.setOnClickListener(v -> {
                if (fileNotExists(item, holder.getLayoutPosition())) {
                    return;
                }
                if (fragment.get() instanceof FileSelectorContract.View) {
                    ((FileSelectorContract.View) fragment.get()).showBigImage(holder.mCover, item.getPath());
                }
            });
        }
    }
}
 
Example 24
Source Project: MVPArms   Source File: GlideImageLoaderStrategy.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public void loadImage(@Nullable Context ctx, @Nullable ImageConfigImpl config) {
    Preconditions.checkNotNull(ctx, "Context is required");
    Preconditions.checkNotNull(config, "ImageConfigImpl is required");
    Preconditions.checkNotNull(config.getImageView(), "ImageView is required");

    GlideRequests requests;

    requests = GlideArms.with(ctx);//如果context是activity则自动使用Activity的生命周期

    GlideRequest<Drawable> glideRequest = requests.load(config.getUrl());

    switch (config.getCacheStrategy()) {
        //缓存策略
        case CacheStrategy.NONE:
            glideRequest.diskCacheStrategy(DiskCacheStrategy.NONE);
            break;
        case CacheStrategy.RESOURCE:
            glideRequest.diskCacheStrategy(DiskCacheStrategy.RESOURCE);
            break;
        case CacheStrategy.DATA:
            glideRequest.diskCacheStrategy(DiskCacheStrategy.DATA);
            break;
        case CacheStrategy.AUTOMATIC:
            glideRequest.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC);
            break;
        default:
            glideRequest.diskCacheStrategy(DiskCacheStrategy.ALL);
            break;
    }

    if (config.isCrossFade()) {
        glideRequest.transition(DrawableTransitionOptions.withCrossFade());
    }

    if (config.isCenterCrop()) {
        glideRequest.centerCrop();
    }

    if (config.isCircle()) {
        glideRequest.circleCrop();
    }

    if (config.isImageRadius()) {
        glideRequest.transform(new RoundedCorners(config.getImageRadius()));
    }

    if (config.isBlurImage()) {
        glideRequest.transform(new BlurTransformation(config.getBlurValue()));
    }

    if (config.getTransformation() != null) {//glide用它来改变图形的形状
        glideRequest.transform(config.getTransformation());
    }

    if (config.getPlaceholder() != 0)//设置占位符
    {
        glideRequest.placeholder(config.getPlaceholder());
    }

    if (config.getErrorPic() != 0)//设置错误的图片
    {
        glideRequest.error(config.getErrorPic());
    }

    if (config.getFallback() != 0)//设置请求 url 为空图片
    {
        glideRequest.fallback(config.getFallback());
    }

    glideRequest
            .into(config.getImageView());
}
 
Example 25
Source Project: NIM_Android_UIKit   Source File: GlideImageLoader.java    License: MIT License 4 votes vote down vote up
private static Transformation<Bitmap> createRounded(int dp) {
    return new RoundedCorners(ScreenUtil.dip2px(dp));
}
 
Example 26
Source Project: edx-app-android   Source File: ImageUtils.java    License: Apache License 2.0 4 votes vote down vote up
public static void setRoundedCornerImage(@NonNull ImageView imageView,
                                         @DrawableRes int drawableRes) {
    final Context context = imageView.getContext();
    final int cornerRadius = context.getResources().getDimensionPixelSize(R.dimen.subject_item_corner_radius);
    Glide.with(context).load(drawableRes).transform(new RoundedCorners(cornerRadius)).into(imageView);
}
 
Example 27
Source Project: TitleBarView   Source File: GlideManager.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * 加载圆角图片
 *
 * @param obj                 加载的图片资源
 * @param iv
 * @param dp                  圆角尺寸-dp
 * @param placeholderResource -占位图
 * @param isOfficial-是否官方模式圆角
 */
public static void loadRoundImg(Object obj, ImageView iv, float dp, int placeholderResource, boolean isOfficial) {
    Glide.with(iv.getContext()).load(obj).apply(getRequestOptions()
            .error(placeholderResource)
            .placeholder(placeholderResource)
            .fallback(placeholderResource)
            .dontAnimate()
            .transform(isOfficial ? new RoundedCorners(dp2px(dp)) : new GlideRoundTransform(iv.getContext(), dp2px(dp)))).into(iv);
}
 
Example 28
Source Project: UIWidget   Source File: GlideManager.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * 加载圆角图片
 *
 * @param obj                 加载的图片资源
 * @param iv
 * @param dp                  圆角尺寸-dp
 * @param placeholderResource -占位图
 * @param isOfficial-是否官方模式圆角
 */
public static void loadRoundImg(Object obj, ImageView iv, float dp, int placeholderResource, boolean isOfficial) {
    Glide.with(iv.getContext()).load(obj).apply(getRequestOptions()
            .error(placeholderResource)
            .placeholder(placeholderResource)
            .fallback(placeholderResource)
            .dontAnimate()
            .transform(isOfficial ? new RoundedCorners(dp2px(dp)) : new GlideRoundTransform(iv.getContext(), dp2px(dp)))).into(iv);
}
 
Example 29
Source Project: FastLib   Source File: GlideManager.java    License: Apache License 2.0 3 votes vote down vote up
/**
 * 加载圆角图片
 *
 * @param obj                 加载的图片资源
 * @param iv
 * @param dp                  圆角尺寸-dp
 * @param placeholder         -占位图
 * @param isOfficial-是否官方模式圆角
 */
public static void loadRoundImg(Object obj, ImageView iv, float dp, Drawable placeholder, boolean isOfficial) {
    Glide.with(iv.getContext()).load(obj).apply(getRequestOptions()
            .error(placeholder)
            .placeholder(placeholder)
            .fallback(placeholder)
            .dontAnimate()
            .transform(isOfficial ? new RoundedCorners(dp2px(dp)) : new GlideRoundTransform(dp2px(dp)))).into(iv);
}