实现 GridLayoutManger 和 StaggeredGridLayoutManager 的混排 最近项目中要实现瀑布流的混排,于是写了一些工具类来实现。使用了这个工具类,可以处理混排,可以处理间距。都集成在一个接口中。最后效果类似这样。
可以显示调试信息的Drawable 为了研究瀑布流布局中的布局规律和 StaggeredGridLayoutManager.LayoutParams中的spanIndex的关系。需要把这些内容打印出来,但是不如直接显示在item方便。于是写了一个drawable来实现。
使用gradle 移除敏感权限 最近要上架Google Play 但是因为有个敏感权限很容易被拒。想着把权限依赖的库去掉就行了,但是遇到一个恶心的问题。就是这个权限在Android Studio的Merged Manifest 视图中没有,但是在生成的apk中却包含。这样的就不能通过Android Studio来定位权限来自于那个库。包含在生成的清单文件中。
Retrofit 自定义注解 实现可选择性的打印接口日志 有时候我们需要打印okhttp的日志,但是现在的日志拦截器,不能做到接口级别的日志输出控制。要么就是全部打印。这样很影响调试效率。所以我在这块做了一些探索。
Glide支持通过url加载本地图标 glide可以在load的时候传入一个资源id来加载本地图标,但是在开发过程中。还得区分数据类型来分别处理。这样的使用成本比较大。希望通过自定义ModelLoader实现通过自定义的url来加载Drawab。降低使用成本。
生成随机图片 上面的代码可以生成随机图片。而且内容可以指定 **“https://source.unsplash.com/%dx%d/?beauty&random=%d”**比如?后面的beauty返回的就是美女图片。
使用ImageView实现Drawable 有时候在使用drawable绘制图片的时候,要实现类似ImageView中各种 ScaleType的效果。但是每种ScaleType还得自己去实现具体的算法。有点麻烦,后来我想能不能直接复用ImageView的算法。于是有了以下这个类。这个类,亲测可用。记录一下,以备后面使用。