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

Pet*_*ter 8 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);
Run Code Online (Sandbox Code Playgroud)

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

Sha*_*ley 13

您可以使用BitmapDrawable,但您必须先设置边界,以便知道要进行多少平铺:

BitmapDrawable background;
background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(),R.drawable.back));

//in this case, you want to tile the entire view
background.setBounds(0, 0, myView.getWidth(), myView.getHeight());

background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
background.draw(canvas);
Run Code Online (Sandbox Code Playgroud)


Ric*_*ich -1

你把它搞反了。不要将视图的画布传递给位图的绘制方法,而是使用 Canvas.drawBitmap 将位图绘制到视图的画布