Epa*_*das 1 memory android canvas ondraw android-linearlayout
在我的应用程序中,我创建了重写 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)来执行相同操作的方法。如果有人指出我以更记忆友好的方式执行此操作的方法,我将不胜感激。
先感谢您。
当调用视图的构造函数时创建视图Rect
,或者同时声明并实例化它。例如
Rect mRect = new Rect();
Run Code Online (Sandbox Code Playgroud)
和onDraw
@Override
protected void onDraw(Canvas canvas) {
canvas.getClipBounds(mRect) ;
// read the properties of mRect
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
702 次 |
最近记录: |