Кадр за кадром на живых обоях

Есть ли способ нарисовать покадровую анимацию на Bitmap для живых обоев? У меня есть следующий код, и рамки отображаются на живых обоях. Однако все они появляются одновременно, а не по одному. Кажется, что между кадрами почему-то нет длительности.

Может кто-нибудь помочь, пожалуйста? Заранее спасибо.

Код:

        int frame = 0; 
        for (;frame < 8; frame ++)
        {

            int[] pirates_frame = {
            R.drawable.frame1, R.drawable.frame2, R.drawable.frame3,
            R.drawable.frame4, R.drawable.frame5, R.drawable.frame6,
            R.drawable.frame7, R.drawable.frame8,};


            icon = BitmapFactory.decodeResource(getResources(),pirates_frame[frame]);
            canvas.drawBitmap(icon, x2, y2, null);
            System.out.println("frame is : " + frame);
            icon.recycle();
        }

person Dante    schedule 02.05.2014    source источник


Ответы (1)


Там нет временной задержки. Это просто будет зацикливаться сразу, пока это не будет сделано. Вы должны попробовать использовать runnable или поток с задержкой для отрисовки каждого кадра.

Здесь есть хороший учебник, в котором используются runnables: http://www.vogella.com/tutorials/AndroidLiveWallpaper/article.html

Также я рекомендую не инициализировать ваш Pirates_Frame в цикле for, так как вы делаете одно и то же 8 раз, а в некоторых случаях это может сильно замедлить работу.

person Whitney    schedule 02.05.2014