今天在照着书写拖动seekbar来改变图片的色调、饱和度和亮度的demo的时候,
发现自己的demo在拖动seekbar的时候比书上的demo要有明显的卡顿。
一开始以为是SeekbarAPI更新的问题,我用的是26的API,书上的是21的API,
但很快这种怀疑的念头就被打消了,google控件越更新越卡这种情况应该不常见。
于是在布局里面找原因,
发现RelativeLayout可以设置orientation,当我添加了orientation="vertical"时,
奇迹出现了,拖动seekbar改变图片颜色卡顿的情况有了明显的改善,
这时才想到,RelativeLayout在绘制的时候,会在竖直方向和水平方向分别绘制两次来确定控件的位置。
当我们增加了orientation="vertical",View就会取消掉水平方向上的绘制,从而达到优化流畅度的效果。