Android:BitmapDrawable.Draw(Canvas)似乎不起作用

时间:2011-02-23 06:27:29

标签: android bitmap draw

我正在尝试将20x20背景平铺到我的自定义视图中,但出于某种原因我也无法进行。

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

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

3 个答案:

答案 0 :(得分:6)

不要将边界设置为贴图的大小:将它们设置为要平铺的总面积。在你的情况下:

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

我似乎已使用以下代码解决了此问题

//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);

但我现在有自己的问题。什么都不能画到画布上?