为什么这个在没有背景的情况下绘制但在setBackgroundDrawable时没有绘制到画布?

时间:2012-08-20 18:49:40

标签: java android bitmap drawable android-canvas

当我在视图上设置背景时。

//background
    Bitmap back_bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.background); 
    BitmapDrawable backTiled = new BitmapDrawable(back_bmp);
    backTiled.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    backTiled.setBounds(0, 0, this.getWidth(), this.getHeight());
    this.setBackgroundDrawable(backTiled);

我的动画对象根本不会渲染

    public void render(Canvas canvas) {
    elaine.draw(canvas);
    }

    public void update() {
    elaine.update(System.currentTimeMillis());
    }

虽然没有背景设置,但它很好。

1 个答案:

答案 0 :(得分:0)

我在我的视图中调用了背景,虽然它可能有效,但它确实效果不佳。

在重新考虑和放弃之后,我回到了我认为它应该如何工作的方式。我应该检查是否有什么不起作用(只是因为当我第一次尝试它时代码没有设置边界或有效加载图像。)可能会再次工作。

我做过并意识到如果在渲染中加载,一切都会完美。

    public void render(Canvas canvas) {
    //background
    Bitmap _back_bmp = BitmapFactory.decodeResource(mainContext.getResources(), R.drawable.background); 
    backTiled = new BitmapDrawable(_back_bmp);
    backTiled.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    backTiled.setBounds(0, 0, this.getWidth(), this.getHeight());
    backTiled.draw(canvas);
    elaine.draw(canvas);

    }