gpt4 book ai didi

java - 继续调用 View.invalidate 以便不断调用 onDraw 是否安全?

转载 作者:行者123 更新时间:2023-12-01 18:42:08 27 4
gpt4 key购买 nike

所以我有这个 Canvas View ,它从 Canvas 类中绘制内容,问题是我的 Canvas View 类中的 onDraw 仅在特定时间调用,例如从应用程序移动到另一个应用程序或任何影响屏幕和布局的东西。所以我发现 View.invalidate 会调用 onDraw 以便我重新绘制所有布局。所以我这样做是为了让我的 onDraw 不断被调用,但是它安全吗?我的意思是我确实感觉到某些 FPS 在特定时间内下降,有没有更好的方法来确保 onDraw 不断被调用?

private class CanvasView extends View{
public CanvasView(Context context){
super(context);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

native_onDraw(canvas, width, height, density);

this.invalidate(); // refresh everything
}
}

最佳答案

重写 OnDraw() 并调用 invalidate 是实现每帧更新显示的好方法,但这会消耗资源。另一方面,您可以查看 Choreographer类(class)。

关于java - 继续调用 View.invalidate 以便不断调用 onDraw 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59908895/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com