【问题标题】:How do I make a circle grow while the screen is being touched (Android)?触摸屏幕时如何使圆圈变大(Android)?
【发布时间】:2012-06-10 06:39:33
【问题描述】:
我对 Android 比较陌生,对图形也很陌生。我可以在屏幕上画一个圆圈,甚至在它移动时拖动它并扩大(半径继续增加),但是当我只是触摸屏幕时,圆圈的大小并没有增加。我认为这是因为 MotionEvent。
本质上,我想要做的是每当触摸屏幕时增加一个圆的大小,并在用户移动手指时相对于圆心移动,然后在抬起手指时重置为原始半径.任何建议都会很棒,或者如果有人知道涵盖此内容的教程也会很棒。谢谢。
【问题讨论】:
标签:
android
geometry
touch-event
ontouchlistener
【解决方案1】:
在您的 onTouchEvent 方法中,使用 getActionMasked(); 检查事件的类型;
int eventType = event.getActionMasked();
if(eventType == MotionEvent.ACTION_DOWN)
growCircle();
else if(eventType == MotionEvent.ACTION_UP)
returnCircleToNormal();
【解决方案2】:
嗯......你可以做的是覆盖onDraw()并使用canvas.drawBitmap(bitmap, src, dst, paint)直接绘制到提供的画布
下面是对参数的解释:
-
位图是您要使用的位图
-
src 是一个
Rect 变量,如果您想使用位图,您可以选择哪个部分...如果您想绘制整个位图,请使用null
-
dst 是另一个
Rect 变量,用于在画布上您要绘制位图的位置。如果您将矩形的点从它们应该在的位置向上设置,它也会放大您的位图。
- 最后,只需将 paint 设置为 null
【解决方案3】:
在你的ACTION_DOWN 方法中启动一个线程,每秒增加你的圆的半径。在ACTION_UP 中停止线程并将圆调整为原始大小。