我想在android的某个位置随机出现三个图像。 我想让这些图像可以点击。如果单击出现的单个图像,计数器将增加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
或数组中,并使用Random的List
方法。为了使图像随机显示和消失,请使用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
}
方法进行图像处理。
这不是实现这一目标的唯一方法,而是一个非常简单的方法。