java - 仅使用 Android View.onDraw() 进行绘图更改

标签 java android performance android-view ondraw

我惊讶地发现 View.onDraw() 在绘制之前会删除 Canvas 。这不是我想要的。有什么好方法可以保留以前的绘图,以便我只需要在每次调用期间在以前的绘图之上绘制更改?

最佳答案

有几个 API 可以定义脏矩形以使 View 失效:

public void invalidate(Rect dirty)
public void invalidate(int l, int t, int r, int b)

但是,更有可能的是,View 会一直重绘,例如当您滑动它时,或者按 Z 顺序位于其上方的另一个 View 会失效。

您可以尝试使用setDrawingCacheEnabled,如果您自己进行绘图,请务必缓存您正在绘制的位图

关于java - 仅使用 Android View.onDraw() 进行绘图更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20604486/

相关文章:

windows - ubuntu 上的 windows virtualbox 或 windows 上的 ubuntu virtualbox 具有更好的性能

java - 如何克隆 JDT ICompilationUnit

java - 所以我需要找到字符串中的所有元音并使用循环替换它们

java - Java中不同 map 投影之间的转换

android - 矢量可绘制图标的正确尺寸是多少?

android - 仅使用蓝色的设备之间的通信

c# - 性能 - 连接 C-sharp 和 C++ 对性能有何影响?

WPF 位图性能

java - 从 keycloak 进行身份验证时如何获取用户角色和客户端角色

android - 在 WebView 或自定义 View 中播放 Gif