Студия Android предупреждает о строке рисования с сообщением «Возможный сброс внутри цикла» с таким подробным описанием:< /p>
Информация проверки: ищет возможность сброса пакета или средства визуализации, происходящего
внутри цикла, прямо или косвенно. Из соображений производительности
необходимо позаботиться о том, чтобы не вызывать ненужных сбросов, и максимально ограничить
количество сбросов на кадр.
Код: Выделить всё
DelayedRemovalArray myEntities = ...;
bricks.begin();
for(MyEntity myEntity : myEntities) {
myEntity.draw(game.getBatch()); // warning: Possible flush inside a loop
}
bricks.end();
Код: Выделить всё
Matrix4 tempMatrix = new Matrix4();
Matrix4 originalMatrix = new Matrix4();
NinePatchDrawable ninePatchDrawable = ...;
public void draw(SpriteBatch batch) {
originalMatrix.set(batch.getTransformMatrix());
tempMatrix.set(originalMatrix);
tempMatrix
.translate(myEntity.width/2, myEntity.height/2, 0)
.rotate(0, 0, myEntity.angle, 10)
.translate(-myEntity.width/2, -myEntity.height/2, 0);
batch.setTransformMatrix(tempMatrix);
ninePatchDrawable.draw(batch, ...);
batch.setTransformMatrix(originalMatrix);
}
Итак, как это сделать, не получив этого предупреждения? Есть ли лучший способ сделать это?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/791 ... oid-studio
Мобильная версия