Android Холст Несколько слоев для WallpaperService.Engine - PullRequest
1 голос
/ 04 декабря 2010

Я работаю над живыми обоями. Для обоев требуются небольшие подвижные изображения, которые должны находиться за большим фиксированным изображением с прозрачными областями. Меньшие изображения будут видны только тогда, когда они находятся в прозрачных частях большого изображения.

Вот как я это делал до сих пор:

Canvas c = holder.lockCanvas();
c.save()
drawSmallImages(c); //draw the movable images
drawLargeImage(c); //draw the fixed large image
c.restore();

Я проверил это через traceview, и похоже, что Android тратит большую часть вычислительной мощности, чтобы нарисовать большое изображение, и в идеале я бы хотел, чтобы оно рисовалось только один раз, когда запускаются обои. Я не знаю, как заставить меньшие изображения рисовать за большим изображением, не перерисовывая большое изображение после меньших изображений в каждом кадре.

1 Ответ

4 голосов
/ 05 декабря 2010

Содержимое холста не будет очищено, поэтому вы можете легко оптимизировать чертеж, очистив небольшие участки и используя прямоугольник обрезки, чтобы перерисовать только часть большого изображения.

...