基于Glide V4.0封装的GlideImageView,可监听加载图片时的进度
2018-01-11 17:38
549 查看
GlideImageView 是基于Glide V4.0设计的,实现如下特性:
1、通过提供的属性可以设置图片的圆角、边框。2、可以设置点击触摸图片时的颜色、透明度。
3、一行代码加载来自网络、res、SDCard中的图片,可加载成圆形。
4、可以监听加载图片时的进度。
下面这张图是设置了图片的圆角、边框并设置了触摸图片时的颜色
GitHub地址
APK下载地址,去手机上体验吧 (‿)
具体使用说明如下
Gradle:
compile 'com.sunfusheng:glideimageview:1.0.0'
Maven:
<dependency> <groupId>com.sunfusheng</groupId> <artifactId>glideimageview</artifactId> <version>1.0.0</version> <type>pom</type> </dependency>
ShapeImageView 和 GlideImageView 共同的属性
该库提供了一个ShapeImageView类,可以在xml当中,也可以在代码中设置图片的一些属性,当然这些属性也可以在GlideImageView上面设置,具体属性如下
Attribute 属性 | Description 描述 |
---|---|
siv_border_color | 边框颜色 |
siv_border_width | 边框宽度 |
siv_pressed_color | 触摸图片时的颜色 |
siv_pressed_alpha | 触摸图片时的颜色透明度: 0.0f - 1.0f |
siv_radius | 圆角弧度 |
siv_shape_type | 两种形状类型:默认是0:rectangle、1:circle |
下面是在xml中和代码中设置的效果
xml中设置 | 代码中设置 |
---|---|
一行代码加载来自网络、res、SDCard中图片
public GlideImageView loadImage(String url, int placeholderResId); public GlideImageView loadLocalImage(@DrawableRes int resId, int placeholderResId); public GlideImageView loadLocalImage(String localPath, int placeholderResId);
一行代码加载来自网络、res、SDCard中图片成圆形
public GlideImageView loadCircleImage(String url, int placeholderResId); public GlideImageView loadLocalCircleImage(int resId, int placeholderResId); public GlideImageView loadLocalCircleImage(String localPath, int placeholderResId);
如果你觉得上面的方法还不能满足你,那么你可以通过下面的方法追加自己想要的属性来加载图片
RequestOptions requestOptions(int placeholderResId); RequestOptions circleRequestOptions(int placeholderResId); GlideImageView load(int resId, RequestOptions options); GlideImageView load(Uri uri, RequestOptions options); GlideImageView load(String url, RequestOptions options);
如果你还是觉得得不到满足,好吧,我提供了GlideImageLoader类加载图片,比如这样加载图片:先加载缩略图再加载高清图片,并监听加载的进度
private void loadImage(String image_url_thumbnail, String image_url) { RequestOptions requestOptions = glideImageView.requestOptions(R.color.black) .centerCrop() .skipMemoryCache(true) // 跳过内存缓存 .diskCacheStrategy(DiskCacheStrategy.NONE); // 不缓存到SDCard中 glideImageView.getImageLoader().setOnGlideImageViewListener(image_url, new OnGlideImageViewListener() { @Override public void onProgress(int percent, boolean isDone, GlideException exception) { progressView.setProgress(percent); progressView.setVisibility(isDone ? View.GONE : View.VISIBLE); } }); glideImageView.getImageLoader().requestBuilder(image_url, requestOptions) .thumbnail(Glide.with(ImageActivity.this) // 加载缩略图 .load(image_url_thumbnail) .apply(requestOptions)) .transition(DrawableTransitionOptions.withCrossFade()) // 动画渐变加载 .into(glideImageView); }
该库提供两种监听加载图片进度的Listener,总有一款是你想要的
public interface OnGlideImageViewListener { void onProgress(int percent, boolean isDone, GlideException exception); } public interface OnProgressListener { void onProgress(String imageUrl, long bytesRead, long totalBytes, boolean isDone, GlideException exception); }
GitHub地址
相关文章推荐
- Glide ImageViewTarget 加载图片监听以及获取图片Path、Bitmap用法
- 基于Glide 4.4 实现加载进度监听 超大图片显示 自定义磁盘缓存路径
- Glide ImageViewTarget 加载图片监听
- Android Glide+CircleImageView实现加载圆形图片列表
- Glide与CircleImageView加载圆形图片显示不正常的问题
- 基于开源框架Glide加载Gif资源图到Android ImageView中
- 基于开源框架Glide加载Gif资源图到Android ImageView中
- Android基于Glide v4.x的图片加载进度监听
- Android基于JsBridge封装的高效带加载进度的WebView
- 基于universalimageloader实现的图片加载控件BlurImageView
- 在RecyclerView中使用Glide和CircleImageView加载圆形图片时出现图片错乱
- Android基于JsBridge封装的高效带加载进度的WebView
- Android Glide加载图片圆角效果与ImageView的ScaleType冲突问题
- Android基于JsBridge封装的高效带加载进度的WebView
- iOS基于SDWebimage和urlConnection简单的带进度条图片加载
- 详解Android中Glide与CircleImageView加载圆形图片的问题
- 基于Glide v4.x的图片加载进度监听
- 基于开源框架Glide加载Gif资源图到Android ImageView中
- Glide、Picasso框架加载图片——ImageView中、ListView中
- Glide 加载圆形图片CircleImageView遇到的问题