Моя проблема, вероятно, очень проста. Недавно я поднял создание живых обоев для Android (и Android-кодирование в целом), и мне не хватает оснований для кодирования Live Wallpaper, так как это действительно трудно найти.Android Live Wallpaper - слои и основы XML в Live Wallpapers
Я хотел бы создать Живые обои с 2 (или более) «слоями». Мои две так называемые слои:
- фон, который реагирует на события прикосновения
- точечный рисунок, который находится на верхней
На данный момент я рисую все в одном холсте, который выглядит как это:
Resources res = getResources();
Bitmap image = BitmapFactory.decodeResource(res, R.drawable.image);
Canvas c = null;
try {
c = holder.lockCanvas();
if (c != null) {
c.drawARGB(aa, rr, gg, bb);
c.drawBitmap(image, 0, 0, paint);
}
} finally {
if (c != null) holder.unlockCanvasAndPost(c);
}
Он работает, но производительность действительно плохо, так как я рисую этот относительно большой файл PNG на каждом кадре перерисовки.
Я хотел бы знать, что является лучшим способом отображения растровых изображений в Live Wallpapers? Как и как позже их оживить (в основном просто изменить позицию для начала), не переделывая их каждый раз? Наконец, как определить z-index (иметь несколько слоев) в Live Wallpapers - это также можно сделать с помощью XML, например, в «обычных приложениях»?
Спасибо! Декодирование растровых изображений только однажды резко улучшило производительность. Я также рассмотрю ваш шаблон, чтобы узнать больше. –