gpt4 book ai didi

Android:何时调用 invalidate()?

转载 作者:行者123 更新时间:2023-11-29 00:28:30 26 4
gpt4 key购买 nike

我正在使用 Matrix 在屏幕上旋转 PNG 图像。我想将旋转操作移动到一个单独的线程,这样 UI 线程就不会负担。但这引发了一些有趣的问题。

一旦将 Matrix 应用于 ImageView,我预计需要调用 invalidate()。但是,旋转后的图像在屏幕上显示得很好——而且我从不调用 invalidate()。没有触摸区域,我所做的任何事情都不会明确告诉 UI 刷新屏幕。是什么在刺激 UI 线程更新显示? UI 线程是否神奇地“知道”显示需要更新(因此不需要显式调用 invalidate()),因为 IT 是线程接触显示的一部分的对象?

当我将旋转移出 UI 线程时,我将操纵 UI 用来渲染屏幕的同一个 ImageView。这听起来像是一个需要同步的经典线程冲突问题(因为同一个对象将被多个线程访问)。但是由于上述行为,我不确定这是如何处理的。由于 UI 线程似乎“神奇地知道”屏幕需要更新,我是否需要同步 - 或者单独的线程是否只在 View 上调用 invalidate() 并将处理它?<​​/p>

谢谢!

最佳答案

我相信它是来自非 UI 线程的 postInvalidate(),而不是来自 UI 线程的 invalidate()

但是是的。

只需调用它,它将在下一次给定机会时更新。

关于Android:何时调用 invalidate()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658408/

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