@Pozinux ... Я новый программист. Я наткнулся на этот код, который вы слышали. Я пытаюсь использовать код в моем проекте. Но я не могу заставить его работать. Когда я устанавливаю его в эмулятор, он не перемещается по кадрам. Это показывает только последний кадр. Как вы это настроили? Или заставить это работать? Слышит, как я настроил это в своем проекте.

тите за мой английский не очень хорошо ... надеюсь, вы меня поймете)

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

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

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

Это то, что я сделал до сих пор:

public class Cercle extends WallpaperService
{
public void onCreate() 
{
    super.onCreate();
}

public void onDestroy() 
{
    super.onDestroy();
}

public Engine onCreateEngine() 
{
    return new CercleEngine();
}

class CercleEngine extends Engine 
{
    public Bitmap image1, image2, image3;

    CercleEngine() 
    {       
        image1 = BitmapFactory.decodeResource(getResources(), R.drawable.img1);
        image2 = BitmapFactory.decodeResource(getResources(), R.drawable.img2);
        image3 = BitmapFactory.decodeResource(getResources(), R.drawable.img3); 
    }

    public void onCreate(SurfaceHolder surfaceHolder) 
    {
        super.onCreate(surfaceHolder);
    }

    public void onOffsetsChanged(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) 
    {
        drawFrame();
    }

    void drawFrame() 
    {
        final SurfaceHolder holder = getSurfaceHolder();

        Canvas c = null;
        try 
        {
            c = holder.lockCanvas();
            if (c != null) 
            {              
                 c.drawBitmap(image1, 0, 0, null);
                 c.drawBitmap(image2, 0, 0, null);
                 c.drawBitmap(image3, 0, 0, null);                   
            }
        } finally 
        {
            if (c != null) holder.unlockCanvasAndPost(c);
        }
    }
}
}

Этот код просто отображает картинки слишком быстро, потому что я не знаю, как ждать между изображениями на экране ...

Кто-нибудь может дать мне несколько советов или показать пример другого решения?

Спасибо !

ОБНОВИТЬ :

Я решил свою проблему, добавив Runnable:

private final Runnable drawRunner = new Runnable() 
    {
        @Override
        public void run() {
            drawFrame();
        }

    };

а затем добавив:

    handler.removeCallbacks(drawRunner);
        if (visible) 
        {
           handler.postDelayed(drawRunner, 1000); // delay 1 sec
        }

в конце drawFrame ().

Надеюсь, это кому-нибудь поможет.

Ответы на вопрос(2)

Ваш ответ на вопрос