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

时间:2011-12-05 04:39:44

标签: android android-layout

我想在android的某个位置随机出现三个图像。 我想让这些图像可以点击。如果单击出现的单个图像,计数器将增加1。 我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码在Canvas上绘制图像。

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是Bitmap,bitmapFilterSettings是Paint。将此代码放在onDraw()方法中。

为了随机放置图片,您必须将传递给x的{​​{1}}和y随机化。为了选择随机图像,您可以将位图放在dst Rect或数组中,并使用RandomList方法。为了使图像随机显示和消失,请使用nextInt(listSize)的{​​{1}}方法,仅在图像返回nextBoolean()时绘制图像。不要经常这样做(每X帧一次),否则你的图像会闪烁。

编辑:要执行此操作,您可以在Random中声明一个计数器以及决策之间的帧数。您还需要一个true字段来打开和关闭绘图。在Activity中,它可能如下所示:

boolean

为了使决策之间的时间不太可预测,您还可以随机化onDraw()
/ EDIT

您可以在侦听器中处理触摸事件,在每次单击时调用随机图像选择。如果您只想使图像部分可点击,请检查MotionEvent(您可以使用getX()和getY()方法)的位置,使其位于您用于绘制的同一Rect内使用counter++; if(counter%framesBetweenDecision == 0){ drawImageFlag = random.nextBoolean(); } if(drawImageFlag){ //drawImage } 方法进行图像处理。

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