在Android中,如何使图像随机出现?

In Android, how to make an image randomly appear ??

我想让三个图像随机出现在屏幕上的某个位置在Android。我想让这些图片可以点击。如果单击出现的单个图像,计数器将增加一个。我该怎么办?是吗?


可以使用以下代码在画布上绘制图像。

1
2
3
4
Rect dst = new Rect(x, y, x + imageWidth,y + imageHeight);

//enter paint as the last arg to use bitmap filtering
canvas.drawBitmap(myBitmap, null, dst, bitmapFilterSettings);

mybitmap是位图,bitmapfiltersettings是画图。将此代码放入方法中。

为了随机放置图像,您必须随机化传递到dst Rectxy。为了选择随机图像,可以将位图放在一个List或一个数组中,并使用随机的nextInt(listSize)方法。为了使图像随机出现和消失,使用RandomnextBoolean()方法,并且仅当图像返回true时绘制图像。不要经常这样做(每X帧一次),否则您的图像将闪烁。

编辑:要做到这一点,您可以在Activity中声明一个计数器和决策之间的帧数。您还需要一个字段来打开和关闭绘图。在您的onDraw()中,它可能如下所示:

1
2
3
4
5
6
7
counter++;
if(counter%framesBetweenDecision == 0){
 drawImageFlag = random.nextBoolean();
}
if(drawImageFlag){
//drawImage
}

为了减少决策之间的时间可预测性,您还可以随机化timeBetweenDecision
/编辑

您可以在侦听器中处理触摸事件,每次单击时调用随机图像选择。如果只想使图像部分可单击,请检查MotionEvent的位置(您可以使用getx()和gety()方法)以位于使用contains(x, y)方法绘制图像的同一个rect内。

这不是实现这一目标的唯一方法,而是一个非常简单的方法。