1

我正在编写一个代码,它需要在一秒钟内多次更新 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 毫秒。

4

0 回答 0