Android:BitmapDrawable.Draw(画布)不';好像不行

Android:BitmapDrawable.Draw(画布)不';好像不行,android,bitmap,draw,Android,Bitmap,Draw,我正在尝试将20x20背景平铺到我的自定义视图上,但由于某些原因,我也无法平铺 BitmapDrawable background; background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.back)); background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);

我正在尝试将20x20背景平铺到我的自定义视图上,但由于某些原因,我也无法平铺

    BitmapDrawable background;
    background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.back));
    background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    background.draw(canvas);

有人知道它为什么不起作用吗?

你忘了给出你的可画界限。在绘制之前,您需要至少调用drawable.setBounds()一次。

不要将边界设置为平铺的大小:将其设置为要平铺的总面积。就你而言:

background.setBounds(0, 0, myView.getWidth(), myView.getHeight());

我似乎已经用下面的代码解决了这个问题

//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.back_bmp = backTiled.getTileModeX();
    this.setBackgroundDrawable(backTiled);

但我现在有我自己的问题。无法在画布上绘制任何内容?

如果我希望图像在整个屏幕上平铺,我应该设置什么边界?设置为(0,0,20,20)会给我同样的问题,它不会出现。