Livewallpaper - растровое изображение обращается несколько раз - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю над живыми обоями.На этом я рисую растровые изображения и хочу их переместить.Банкомат есть только одно растровое изображение.Но после каждого второго тика (каждый раз вызывается «розыгрыш») добавляется растровое изображение.

Это мой розыгрыш из моего сервиса:

private void draw() {
        SurfaceHolder holder = getSurfaceHolder();
        Canvas canvas = null;
        try {
            canvas = holder.lockCanvas();
            if (canvas != null) {
                for (DrawElement element : elements) {
                    element.draw(canvas);
                }
            }
        } finally {
            if (canvas != null)
                holder.unlockCanvasAndPost(canvas);
        }
        handler.removeCallbacks(drawRunner);
        if (visible) {
            handler.postDelayed(drawRunner, 1000/25);
        }
    }
}

и мой ImageElement:

public ImageMovingObject(Context context, @DrawableRes int resource) {
    this.bitmap = getResizedBitmap(BitmapFactory.decodeResource(context.getResources(), resource), 100, 100);
    this.paint = new Paint();
    Log.e("In Constructor", "In Constructor");
}

@Override
public void draw(Canvas canvas) {
    positionX += translation;
    Log.e("Position: ", positionX);
    canvas.drawBitmap(bitmap, positionX, 0, paint);
}

Растровое изображение должно перемещаться слева на правую сторону моего устройства.Но, как вы можете видеть, он создает несколько элементов, и все они начинаются с позиции x = 0.Ничья вызывается только один раз за тик, и журнал записывает только самый правильный.

enter image description here

Я не знаю, что я делаю неправильно,Где моя ошибка?Спасибо!

...