小编Epa*_*das的帖子

如何避免在 onDraw 上创建 Rect 对象

在我的应用程序中,我创建了重写 LinearLayout 的 LinearLayout 类,以便以编程方式设置其周围的边框和按需的其他图形(即填充自定义颜色)。问题是,在 onDraw 的第一行中,我必须获取布局 Rect,如下所示:

@Override
protected void onDraw(Canvas canvas) {
    r = canvas.getClipBounds() ;
Run Code Online (Sandbox Code Playgroud)

问题是我收到警告:

避免在绘制操作期间分配对象:使用 Canvas.getClipBounds(Rect) 而不是 Canvas.getClipBounds() ,后者会分配临时 Rect。

虽然我知道上面的代码浪费了内存资源,但我找不到应用Canvas.getClipBounds(Rect)来执行相同操作的方法。如果有人指出我以更记忆友好的方式执行此操作的方法,我将不胜感激。

先感谢您。

memory android canvas ondraw android-linearlayout

1
推荐指数
1
解决办法
702
查看次数

标签 统计

android ×1

android-linearlayout ×1

canvas ×1

memory ×1

ondraw ×1