基本上我有以下位图:位图云;云 = BitmapFactory.decodeResource(getResources(), R.drawable.cloud);
我想要做的是在画布上的不同(随机)位置多次绘制相同的位图(在本例中为云)。我想在我的视图的 OnDraw 方法中执行此操作。
所以最终的产品应该是这样的:
然而
这是在同一画布上多次绘制位图的代码:
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
// canvas.drawColor(Color.BLUE);
//drawBackground(canvas);
//objectMovement(canvas);
for (int i = 0; i < 500; i += 50) {
canvas.drawBitmap(cloud, 50 + rand.nextInt(350),
10 + rand.nextInt(350), null);
}
invalidate();
}
如您所见,我使用随机生成位图的位置,并且每次将位图绘制在画布上的不同位置。
唯一的问题是,每次调用 invalidate() 时,for 循环中的绘图都会再次发生。正因为如此,看起来图纸(云)在整个地方移动得非常快。
搜索了一会,发现了这个问题: Draw multiple times from a single bitmap
这与我的问题几乎相同,但不幸的是,那里没有正确的答案。
那么我该如何实现呢?
谢谢!