gpt4 book ai didi

android - 如何避免在 onDraw 方法中创建对象

转载 作者:搜寻专家 更新时间:2023-11-01 07:55:13 25 4
gpt4 key购买 nike

我知道在 onDraw 方法中创建对象的成本非常高。我想绘制一个圆角矩形矩阵,坐标是动态的,我不能缓存所有的矩形,因为我使用 ScrollView 并且可能有很多矩形, drawRoundRect< 没有其他重载 方法,它有原始参数,我强制在每次迭代中创建一个 Rectangle 对象。谁能为此提出有效的解决方案?

@Override
protected void onDraw(Canvas canvas) {
int h = getMeasuredHeight();
int tileSize = h / rows;

for(int i = 0; i < rows; ++i) {
for(int j = 0; j < columns; ++j) {
int x = j * tileSize;
int y = i * tileSize;
canvas.drawRoundRect(new RectF(x, y, x + tileSize, y + tileSize), 10, 10, tilePaint);
}
}
}

这只是一个例子,矩形可以有任意坐标。

最佳答案

RectFset(left, top, right, bottom) 方法。您可以在构造函数上分配它,并使用此方法更改 Rectf 的边界。

  mRect.set(x, y, x + tileSize, y + tileSize);

其中 mRect 是 RectF mRect = new RectF();

关于android - 如何避免在 onDraw 方法中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28691184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com