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