首页 文章

在Android上的onDraw之外更新视图的画布

提问于
浏览
1

我需要更新自定义视图的一小部分才能显示一个小动画 . 视图的其余部分仅具有静态图像 . 最直接的方法是获取视图的画布并直接更新该特定部分 . 但是无论如何我都无法在view :: onDraw方法之外找到视图的canvas对象 .

我知道的唯一选择是:使用指定的矩形调用view :: invalidate()以最小化绘图闪烁 . 我有代码来更新onDraw中的整个视图 . 因此,最好的办法是检测剪切矩形并仅运行代码来更新指定区域,以便最大限度地减少CPU使用率?

1 回答

  • 0

    我想到目前为止我会尽力回答这个问题 .

    • 在onDraw方法之外没有直接访问画布 .

    • 虽然我们可以使用Canvas.getClipBounds()函数检测剪切矩形,但如果启用GPU,则getClipBounds函数始终返回整个视图区域 . 当不使用GPU时,getClipBounds()返回实际的脏区域 . 由于大多数手机都有GPU,因此功能getClipBounds几乎没用 .

相关问题