题
我正在画布上绘制许多位图,并使用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方法中,并在需要更新文本或留言板的位置时调用无效。
不隶属于 StackOverflow