老套路先看效果图
解释下:如上图我自定义view的时候再onDraw方法进行绘制文本的时候想要的效果是让文字居中,计算都是正确的,相应的坐标也打印出来手动计算检查了下都是对的,但是就是有问题,问题就是打开此自定义view的时候发现文字不居中,但是意外锁屏后再开屏发现居中了。最后检查了下发现了罪魁祸首:
就是上图设置文字大小出错了,为什么呢?因为没有设置文字大小的时候第一次布局的时候是加载的以前文字大小的宽高,所以计算坐标的时候走的是以前文字的高度进行计算居中x,y坐标的所有居中坐标出错了,解决办法,就是尽量不要再onDraw方法进行设置文字大小,我还感觉和onSizeChange方法也有关系
解决办法非常简单,直接将设置文本大小放在初始化view方法里面即可。