该按钮通过 绘制在画布上onDraw
。在以下方法中,我获取了绘制按钮的位置并检测到其中的触摸。一旦被感应到snapShot();
就被调用。我已将 的内容替换snapShot();
为System.out.println("snapShot(); is called");
。每次触摸我都会不断打印出四行。我不明白这个方法是如何连续调用 snapShot() 的?
public boolean onTouch(View view, MotionEvent me) {
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.camera);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int w = metrics.widthPixels;
int h = metrics.heightPixels;
int heightOffset = - bitmap.getHeight() + h;
int widthOffset = w - bitmap.getWidth();
//See if the motion event is on a Marker
if((me.getRawX() >= widthOffset && me.getRawX() < (widthOffset + bitmap.getWidth())
&& me.getRawY() >= heightOffset && me.getRawY() < (heightOffset + bitmap.getHeight())))
{
snapShot();
return true;
}
return super.onTouchEvent(me);
};