我有一个复杂的自定义 View - 照片拼贴。
观察到的是,每当发生任何 UI 交互时,都会重绘 View 。
当我单击“后退”按钮返回上一个 Activity 时,我如何才能避免完全重绘(例如,使用缓存的 UI) View ,因为这也会导致重绘 View 。
在探索 API 和网络时,我找到了一个方法 - getDrawingCache()
- 但不知道如何有效地使用它。
如何有效地使用它?
我概述了自定义 View 的其他问题 here .
最佳答案
我找到了比使用 getDrawingCache 更好的方法。
在onDraw方法中,除了在自然 Canvas 上绘制外,我还在内存 Canvas 上绘制。
Bitmap cacheBmp = Bitmap.Create(....);
Canvas cacheCanvas = new Canvas(cacheBmp);
void onDraw(Canvas c)
{
if(updateDueToInteraction)
{
c.drawXXX(...);
cacheCanvas.drawXXX(...);
} else
{
c.drawBitmap(cacheBmp, 0, 0);
}
}
关于android - 自定义 View - 避免在非交互时重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764476/