Android关于Glide的使用(高斯模糊、加载监听、圆角图片)

高斯模糊、加载监听、圆角图片这些相信大家都很熟悉,那如何实现这些效果,请大家参考本文进行学习。

1、引用

compile 'com.github.bumptech.glide:glide:3.7.0'

2、加载图片

2.1 基本加载

Glide.with(context)
    .load(url)
    .into(imageView);

2.2 设置加载中和加载失败的情况

Glide.with(context) .load(url) .placeholder(R.drawable.loading) //占位符 也就是加载中的图片,可放个gif .error(R.drawable.failed) //失败图片 .into(view);

2.3 只加载动画

Glide.with(context) .load(url) .asGif() // 只能加载gif文件 .into(imageView);

2.4 添加图片淡入加载的效果

Glide.with(context) .load(url) .placeholder(R.drawable.loading) .error(R.drawable.failed) .crossFade(1000) // 可设置时长,默认“300ms” .into(view);

2.5 加载高斯模糊图

Glide.with(context) .load(url) .placeholder(R.drawable.loading) .error(R.drawable.failed) .crossFade(1000) .bitmapTransform(new BlurTransformation(context,23,4)) // “23”:设置模糊度(在0.0到25.0之间),默认”25";"4":图片缩放比例,默认“1”。 .into(view);

2.6 加载监听器RequestListener

Glide.with(this).load(internetUrl).listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { Toast.makeText(getApplicationContext(),"资源加载异常",Toast.LENGTH_SHORT).show(); return false; } //这个用于监听图片是否加载完成 @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { Toast.makeText(getApplicationContext(),"图片加载完成",Toast.LENGTH_SHORT).show(); return false; } }).into(imageView);

注意:如果需要加载完成后设置图片透明度为0,则不能设置.placeholder(R.drawable.url),否则达不到你想要的效果。

2.7 图片缓存机制

Glide缓存策略

Glide默认开启磁盘缓存和内存缓存,当然也可以对单张图片进行设置特定的缓存策略。
设置图片不加入到内存缓存

Glide.with( context ) .load( eatFoodyImages[0] ) .skipMemoryCache( true ) .into( imageViewInternet );

设置图片不加入到磁盘缓存

Glide.with( context ) .load( eatFoodyImages[0] ) .diskCacheStrategy( DiskCacheStrategy.NONE ) .into( imageViewInternet );

Glide支持多种磁盘缓存策略:

DiskCacheStrategy.NONE :不缓存图片
DiskCacheStrategy.SOURCE :缓存图片源文件
DiskCacheStrategy.RESULT:缓存修改过的图片
DiskCacheStrategy.ALL:缓存所有的图片,默认

2.8 加载圆角图片

public class GlideCircleTransform extends BitmapTransformation { public GlideCircleTransform(Context context) { super(context); } @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { return circleCrop(pool, toTransform); } private static Bitmap circleCrop(BitmapPool pool, Bitmap source) { if (source == null) return null; int size = Math.min(source.getWidth(), source.getHeight()); int x = (source.getWidth() - size) / 2; int y = (source.getHeight() - size) / 2; // TODO this could be acquired from the pool too Bitmap squared = Bitmap.createBitmap(source, x, y, size, size); Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888); if (result == null) { result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(result); Paint paint = new Paint(); paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP)); paint.setAntiAlias(true); float r = size / 2f; canvas.drawCircle(r, r, r, paint); return result; } @Override public String getId() { return getClass().getName(); } }

使用:

Glide.with(mContext) .load(imageUrl) .transform(new GlideCircleTransform(mContext)) .into(holder.imageView);

3、参考

http://www.jb51.net/article/98570.htm

http://www.jb51.net/article/98570.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-09-14 05:15:37

Android关于Glide的使用(高斯模糊、加载监听、圆角图片)的相关文章

Android关于Glide的使用(高斯模糊、加载监听、圆角图片)_Android

高斯模糊.加载监听.圆角图片这些相信大家都很熟悉,那如何实现这些效果,请大家参考本文进行学习. 1.引用 compile 'com.github.bumptech.glide:glide:3.7.0' 2.加载图片 2.1 基本加载 Glide.with(context)     .load(url)     .into(imageView); 2.2 设置加载中和加载失败的情况 Glide.with(context) .load(url) .placeholder(R.drawable.loa

android的百度离线地图无法加载离线地图包

问题描述 android的百度离线地图无法加载离线地图包 我是先将从官网下载的离线包解压,把vmp文件夹拷入SD卡根目录下的BaiduMapSDK文件夹内 在程序加载时调用本地的离线地图包,但总是提示无法加载离线地图包. 请高手指点一下什么原因. /** 离线地图初始化 **/ mOffline = new MKOfflineMap(); mOffline.init(new MKOfflineMapListener() { public void onGetOfflineMapState(int

屏幕尺寸-[android 界面]7寸的平板加载了小尺寸的布局

问题描述 [android 界面]7寸的平板加载了小尺寸的布局 写了一个Android程序,现在问题是我的一个7英寸的平板电脑加载了小尺寸的布局,.平板的分辨率是1280*800. 我在ldpi,hdpi,mdpi,xhdpi,sw600,sw800里面都放了不同分辨率的图片.但是我用另一个7英寸的平板就是正常的,分辨率一样,但品牌不一样.求解. 解决方案 sw600dp,这个计算的是dp,不是px. 平板的分辨率是1280*800这个说的是px,你需要算一下.然后看这个平板落到那个dp下.

aquery ftp imageview-怎样使用Android Aquery加载ftp上的图片(不下载)

问题描述 怎样使用Android Aquery加载ftp上的图片(不下载) 使用Android Aquery加载http路径的图片: aquery.id(ImageView的id).progress(进度条的id).image(图片的http路径);---->可以成功加载 将上面图片的路径换成ftp的路径(带ftp用户名和密码)时就加载不了图片了,该如何解决??? 解决方案 http://download.csdn.net/album/detail/1121

Android自带的webview中加载支付宝成功后没有回调,只停留在了支付宝支付成功页面

问题描述 Android自带的webview中加载支付宝成功后没有回调,只停留在了支付宝支付成功页面 我用Android自带的webview中加载支付宝页面去支付,在js里也配置了回调的return_url,为啥收不着回调呢?只是返回支付宝支付成功的链接,然后就停在支付宝支付完成的页面了. 程序里也设置了这个setJavaScriptEnabled(true); public boolean shouldOverrideUrlLoading(WebView view, String url),在

android中PullToRefreshListView上下拉刷新加载怎么做?

问题描述 android中PullToRefreshListView上下拉刷新加载怎么做? 唉..,我是新手 ,不知道用这个东西,好像要关联个工程,才能用,求大神详细介绍答案,谢谢了! 解决方案 http://blog.csdn.net/losetowin/article/details/18261389 你看看 解决方案二: 引用下它提供的库就可以了

Android自定义view实现阻尼效果的加载动画_Android

效果: 需要知识: 1. 二次贝塞尔曲线 2. 动画知识 3. 基础自定义view知识 先来解释下什么叫阻尼运动 阻尼振动是指,由于振动系统受到摩擦和介质阻力或其他能耗而使振幅随时间逐渐衰减的振动,又称减幅振动.衰减振动.[1] 不论是弹簧振子还是单摆由于外界的摩擦和介质阻力总是存在,在振动过程中要不断克服外界阻力做功,消耗能量,振幅就会逐渐减小,经过一段时间,振动就会完全停下来.这种振幅随时间减小的振动称为阻尼振动.因为振幅与振动的能量有关,阻尼振动也就是能量不断减少的振动.阻尼振动是非简谐运

Android插件化之资源动态加载_Android

Android插件化之资源动态加载 一.概述 Android插件化的一个重要问题就是插件资源访问问题,先列出会面对的问题 1.如何加载插件资源 2.如何处理插件资源与宿主资源的处突:插件化资源问题要做到的效果是,如果我们要获取的资源在插件中找得到,则加载优先加载插件的,如果找不到,则到宿主资源中找.这样能做到动态更新的效果. 3.如何确保插件和宿主使用到的是被修改过的资源. 二.原理分析 在做一件事之前必须先弄清楚原理,所以,这里先要弄清楚Android的资源体系原理. 1.资源链   Cont

Android使用PullToRefresh实现上拉加载和下拉刷新效果的代码_Android

在没给大家介绍正文之前,先给大家介绍展示下运行图,如果大家感觉还不错,请继续往下阅读: 相关阅读:分享Android中pullToRefresh的使用心得 项目已同步至:https://github.com/nanchen2251/pullToRefreshDemo 简单使用详情: 1)studio可以直接在app的module设置中直接进行搜索,但是有-的必须添上,而不能用空格代替,为了更加了解这个东西,我还是推荐大家去这里看看,奉上网址: https://github.com/chrisba