2014-03-18 55 views
0

我试图只在按钮被点击时画一个圆。要移动该圆圈,必须单击一个按钮才能进行移动。然而,点击按钮后,bclick的初始值为false,但bclick的值始终为真。如何使它在绘制圆圈后每次都将bclick设置为false?Android:布尔型

我的视图类:

@Override 
     public boolean onTouchEvent(MotionEvent event) { 

       x = event.getX(); 
       y = event.getY(); 


       switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 


       if (MainActivity.isButtonClicked() == true){ 

             canvas.drawCircle(x, y, radius, paint) 

           invalidate(); 
           } 

          break; 
         case MotionEvent.ACTION_MOVE: 

          lastx = event.getX(); 
          lasty = event.getY(); 
       if (MainActivity.isMoveButtonClicked() == true && Mainactivity.is ButtonCLicked() == false){ 

             canvas.drawCircle(lastx, lasty, radius, paint) 

        invalidate();// if this is used, the moving is slow and doesnt move to the exact spot at (lastx, laxyy) 
           } 

          break; 
      } 

我的MainActivity:

boolean bclick =false; 
    boolean mbclick =false; 

drawbutton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

      bclick = true; 

      } 


     }); 

     bclick = false; 

       movebutton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

        mbclick = true; 

      } 


     }); 

       mbclick = false; 


public static boolean isButtonClicked() { 
     return bclick; 
    } 

public static void setButtonClicked(boolean torf) 
    { 
     bclick = torf; 
    } 

public static boolean isMoveButtonClicked() { 
     return mbclick; 
    } 

public static void setMoveButtonClicked(boolean torf) 
    { 
     mbclick = torf; 
    } 

回答

0

您可以创建画圆,并检查它的方法,

if(circleIsDrawn){ 

     bClick = false; 

} 
0
@Override 
public boolean onTouchEvent(MotionEvent event) { 

     x = event.getX(); 
     y = event.getY(); 


     switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 

     if (MainActivity.isButtonClicked() == true){ 

           canvas.drawCircle(x, y, radius, paint) 
           bClick=false; 
         invalidate(); 
         } 

        break; 
    } 
+0

我曾尝试这种方法,但是当我尝试移动圆圈(按下anot后她的按钮)时,圆的移动变得缓慢并且不会停在最后触摸的坐标处。我用更多的代码更新了这个。请指教谢谢。 – user3306996