我正在编写一个代码,需要在一秒钟内多次更新UI以显示动画。但是在调用invalidate之后,onDraw()方法在大约100ms后被调用,因此屏幕被重新绘制的次数减少了每秒只有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():使”和“CustomImageView.onDraw()无效:启动”是~100ms。 我希望将其减少到最多30毫秒。