0
我想在Android 2.1上构建一个动态壁纸,我无法弄清楚如何制作一个带有x-repeatable位图的矩形。Android位图平铺由X
Bitmap backWaveImage = BitmapFactory.decodeResource(res, R.drawable.test);
BitmapDrawable backWave = new BitmapDrawable(backWaveImage);
backWave.setTileModeX(TileMode.REPEAT);
backWave.setBounds(0, this.horizon,
this.width, this.horizon + backWaveImage.getHeight());
backWave.draw(c);
其中c - 是画布。 此代码不产生任何内容。
如果我添加backWave.setTileModeY(TileMode.REPEAT);
我得到如下:
形象似乎被错误地缩放或不便。我有可绘制的目录中的图片,所以它正在放大。
如果我画一个图像(没有BitmapDrawable
),一切看起来都很好。 我玩过Gravity,有各种TileModes。我甚至尝试使用Shader
,但没有任何帮助。
这个问题让我发疯。请帮忙。
2 WarrenFaith
没有太多展示。我从CubeLiveWallpaper演示中获得了一个基本的drawFrame()函数。我相信它工作正常。
我做了更多的测试。这次是5x5红色正方形与白色中心。
backWave.setTileModeX(TileMode.REPEAT);
backWave.setGravity(Gravity.LEFT | Gravity.TOP);
backWave.setTileModeY(TileMode.REPEAT);
此代码将产生以下:
广场被缩放为8×8像素,这是确定的,但它绝对是错位的。
backWave.setTileModeX(TileMode.REPEAT);
backWave.setGravity(Gravity.LEFT | Gravity.TOP);
backWave.setTileModeY(TileMode.CLAMP);
让我意想不到的事情:
你能否提供完整的绘制方法和你真正得到的东西?它很难理解确切的问题 – WarrenFaith