Livewallpaper - растровое изображение нарисовано несколько раз
Я работаю над живыми обоями. На этом я рисую растровые изображения и хочу их переместить. В банкомате нужно нарисовать только одно растровое изображение. Но после каждого второго тика (каждый раз вызывается "draw"), он добавляет растровое изображение.
Это моя ничья из моего сервиса:
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. Ничья вызывается только один раз за тик, и журнал записывает только самый правильный.
Я не знаю, что я делаю не так. Где моя ошибка? Спасибо!