1.如下,用的Glide4.0
RequestOptions options = new RequestOptions() .diskCacheStrategy(DiskCacheStrategy.NONE) .skipMemoryCache(true).transform(new BlurTransformation(Main2Activity.this, 20));
原因:设置了过大以上的高斯模糊,亲测20可以正常进入回调函数,30就不行了,迟迟不走回调……
看了下代码如下
ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); script.setInput(input); // Set the blur radius //设置模糊半径 script.setRadius(radius);
再看看setRadius函数如下:
/** * Set the radius of the Blur. * * Supported range 0 < radius <= 25 * * @param radius The radius of the blur */ public void setRadius(float radius) { if (radius <= 0 || radius > 25) { throw new RSIllegalArgumentException("Radius out of range (0 < r <= 25)."); } setVar(0, radius); }
可知设置超过25的就会报异常 "Radius out of range (0 < r <= 25)." ,但是gilde没有报错,只是迟迟加载不出来不进回调,这个函数还是在android.jar的源码,就先告一段落了,记录一下。