Я не уверен, на какой раздел вы ссылаетесь под «этим блоком», поэтому я предполагаю, что вы имеете в виду весь метод. Вы создаете объекты внутри этого метода
здесь
Paint paint = new Paint();
и здесь
Bitmap temp = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), flip, true);
так что, если этот метод вызывается часто, вы увидите, что эти объекты GC довольно много. Вы должны использовать подход, который не требует создания объектов при каждом вызове. Например, вы можете создать bitmap
при первом запуске метода, а затем манипулировать canvas
этого растрового изображения, чтобы добиться вашего отражения.
Вы можете получить canvas
в конструкторе и манипулировать в начале каждого вызова метода с помощью rotate () . Таким образом, вы можете просто создать Bitmap
и Canvas
при первом вызове метода.
Кроме того, всякий раз, когда вы создаете растровое изображение, оно также может выделять для этого видеопамять, что делает его еще более неэффективным, чем выглядит!