Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – View.invalidate()似乎没有调用View.onDraw()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个绘图库,有了它我有一个自定义视图.当需要进行任何更新时,库会@L_607_5@视图的invalidate()方法.然后@L_607_5@onDraw()方法,一切正常.

但是,当我将usesSdkVersion =“14”的属性添加到我的@L_531_11@manifest.xml文件时,这将停止工作.不再是我的视图的onDraw()方法被@L_607_5@了.

更多信息:
似乎当我在我的应用程序中按下按钮时@L_607_5@invalidate()时,View会按预期更新.此外,我的库中有一个动画正常工作.所以显然有时它工作正常.但大部分时间,都没有重新绘制.是否存在自定义视图可能导致操作系统在@L_607_5@invalidate()后跳过重绘的状态?

解决方法

从android 3.0开始,当使用硬件加速时,视图的绘制被记录并存储在GPU中.

因此,当你有两个视图时:A在B之上,你@L_607_5@B.invalidate,B.onDraw将被@L_607_5@并记录到GPU,但是A.onDraw将不会被@L_607_5@,因为它已经被记录了!

当@L_607_5@所有视图onDraw时,这与非硬件加速模式不同.

大佬总结

以上是大佬教程为你收集整理的android – View.invalidate()似乎没有调用View.onDraw()全部内容,希望文章能够帮你解决android – View.invalidate()似乎没有调用View.onDraw()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。