2014-03-18 2 views
0

버튼을 클릭했을 때만 서클을 그리려합니다. 그리고 원을 움직이려면 움직이기 위해 버튼을 클릭해야합니다. bclick의 초기 값은 false이지만 버튼을 클릭하면 bclick의 값이 항상 true가됩니다. 원이 그려 질 때마다 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

나는 시도 그러나이 방법은 원을 움직이려 할 때 (사다리꼴을 누른 후에 그녀의 버튼), 원의 움직임은 느려지고 마지막으로 터치 된 좌표에서 멈추지 않습니다. 나는 이것을 더 많은 코드로 업데이트했다. 제발 조언을 부탁드립니다. – user3306996

관련 문제