代码设置ring类型的shape时候找不到设置thickness、innerRadius的方法,貌似是隐藏的,所以并不能动态去是设置颜色,有个小坑,就是后面设置的颜色会覆盖掉之前的颜色,如果是先设置background,再在代码中获取对象这中方式就会出现这种情况;建议以其他的方式去实现。
RecycleView在设置成横向列表的时候,系统提供了SnapHelper这个辅助类来调整Item的位置,这个是抽象类,官方提供了
LinearSnapHelper,可以让RecyclerView滚动停止时相应的Item停留中间位置;还提供了PagerSnapHelper,
可以使RecyclerView像ViewPager一样的效果,一次只能滑一页,而且居中显示。
使用很简单new LinearSnapHelper().attachToRecyclerView(recyclerview);
其实两个子类的效果差不多,只有细微的区别,可以根据实际开发需要去设置。
动态设置app主题,Activity提供了setTheme(int a)的方法,必须在setContentView之前设置,简单实现的是重启Activity,设置启动模式singleTask,注意可能有一瞬间的闪屏,需要去掉转场动画
在xml中先规定好主题样式
换肤:网络异步下载皮肤包,文件名字必须一样,然后替换即可
Glide宽度填满,自适应图片高度,列表中出现图片有时清晰有时模糊的bug,原因高度高的图片复用了的高度底的图片位置(相差比较大),
深层的原因是在Glide加载完成图片后的回调(onResourceReady())中,Drawable的资源不是当前条目加载的图片高度,而是复用的图片的宽高
而计算后的结果是499,目标图片是1080*500的大小,所以出现了模糊的情况;
解决办法,在使用图片加载的地方给imageview设置一个高度(目测需要比图片高度大,具体多少需要视情况而定),列表中使用
的话需要在代码中设置一下,因为复用的关系;普通的话在xml中设置就行,保险的话就2个地方都加
疑惑:设置高度后在回调中能获取正确的Drawable的宽高,没有设置的话获取的是复用的图片的宽高?
级别:偶发性(只要Imageview高度比实际的图片高度低就会出现)
Glide加载图片的时候,如果没有额外的设置,默认会根据imageview的大小去压缩图片并显示,所以不用担心图片内存的问题,一般不会出现OOM的问题
如果出现了Glide加载的图片不能自适应的话,可以通过.override()去设置大小