java事件未触发
我试图在canvas
上画一个正方形,但只有MotionEvent.ACTION_DOWN
运行,然后listener
停止
这个想法是,当用户触摸屏幕时,它会得到x1和y1位置,每次触发onTouch
时,它必须将矩形frim x1 y1绘制到当前位置,最后在用户放开屏幕后将最后一个位置保存在x2 y2中
我的代码如下所示:
surfaceView.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
holder = surfaceView.getHolder();
canvas = holder.lockCanvas();
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
x1=event.getX();
y1=event.getY();
}
else if(event.getAction() == MotionEvent.ACTION_UP)
{
x2=event.getX();
y2=event.getY();
}
canvas.drawRect(x1, y1, event.getX(), event.getY(), paint);
holder.unlockCanvasAndPost(canvas);
return true;
}
});
谁能给我举个例子吗
# 1 楼答案
从上述代码中触发操作。尝试下面的代码,你会看到日志
我认为你的问题可能与你得到的分数有关。我不知道你是如何定义x1、y1、x2、y2的,但当声明超出范围时,它们必须是最终的。试试这个