Livewallpaper-多次绘制位图

时间:2018-09-25 12:41:35

标签: java android live-wallpaper

我正在研究动态壁纸。在此,我正在绘制位图并想要移动它们。在ATM上,只能绘制一张位图。但是在每隔一个滴答声之后(每次调用第二次“绘制”),它都会添加一个位图。

这是我从我的服务中提取的钱:

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

我不知道我在做什么错。我的错误在哪里? 谢谢!

0 个答案:

没有答案