我正在尝试将20x20背景平铺到我的自定义视图中,但出于某种原因我也无法进行。
BitmapDrawable background;
background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.back));
background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
background.draw(canvas);
有没有人知道它为什么不起作用?
答案 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);
但我现在有自己的问题。什么都不能画到画布上?