我正在编写一个代码,它需要在一秒钟内多次更新 UI 以显示动画。但是在调用 invalidate 之后, onDraw() 方法在大约 100 毫秒后被调用,因此重新绘制屏幕的次数减少到只有 4或每秒 5 次。
我想知道究竟是什么导致了 invalidate() 命令和调用 onDraw 方法之间的时间差。
有什么办法可以减少延迟,让我的动画流畅吗?提前致谢。
这是一个大代码,我将为其发布简单的格式:
public class CustomImageView extends ImageView {
private boolean doDoubleTap(MotionEvent e) {
<Loop>
tuneMatrix(matrix);//here i am changing the values for the matrix.(ie scaling and all)
invalidate();
System.out.println("CustomImageView.doDoubleTap():invalidate");
</LOOP>
}
onDraw(){
System.out.println("CustomImageView.onDraw():start");
//my code changes
}
}
现在日志“CustomImageView.doDoubleTap():invalidate”和“CustomImageView.onDraw():start”之间的时间差约为 100 毫秒。我想将其减少到最大 30 毫秒。