【问题标题】: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 中停止线程并将圆调整为原始大小。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多