我正在画布上绘制许多位图,并使用MotionEvents让我拖动它们。

按下每个项目时,我想显示一个吐司或类似烤面包的迷你信息面板,以跟踪Action_Move期间被拖动的位图的运动。 “吐司”将出现在Action_Down上,并在Action_UP上消失。

使用吐司的问题在于我必须给它持续时间,而且,一旦显示出来,我就无法更改其位置。除非我可以为每个action_move杀死烤面包,并立即在当前坐标上显示一个新的烤面包? (对不起,此时大声思考,无法进入我的开发机器进行测试...)

我不知道还有什么其他选择可以实现这一目标,我非常感谢社区的建议。

有帮助吗?

解决方案

希望这对它有所帮助,甚至可以编译!

private boolean mDragging = false;
private float mTouchX = 0, mTouchY = 0;
private Paint mTextPaint = new Paint();//need to set this up in onCreate!

public boolean onTouchEvent(MotionEvent event)
{
  mTouchX = event.getX();
  mTouchY = event.getY();

  if(event.getAction() == ACTION_DOWN)
  {
    mDragging = true;
  }
  else if(event.getAction() == ACTION_UP)
  {
    mDragging = false;
  }

  return true;
}

protected void onDraw (Canvas canvas)
{
  /* Put all your bitmap drawing here. */

  /* Draw some info text on top of everything else. */
  if(mDragging)
  {
    String text = mTouchX + ", " + mTouchY;
    canvas.drawText(mTouchX, mTouchY + 50, text, mTextPaint);
  }
}

其他提示

出于您已经提到的原因,在这种情况下,敬酒不适合。最好在画布上定义一个区域,并使用drawText绘制消息字符串。将其放入OnDraw方法中,并在需要更新文本或留言板的位置时调用无效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top