2012-10-16 5 views
0

3 초 후에 서클을 팝업으로 만들고 3 초 안에 사라집니다. 이 프로그램은 3 초 후에 원을 터뜨 렸지만 3 초의 지속 시간에는 문제가 있습니다.Android 팝업 카운트 다운

어떤 하나

public class TestView extends View{ 

private boolean isPop; 

public TestView(Context context) { 
    super(context); 

    isPop=false; 
    // TODO Auto-generated constructor stub 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawColor(Color.RED); 

    Paint circle = new Paint(); 
    circle.setColor(Color.BLUE); 
    if (isPop){ 
     canvas.drawCircle(100, 100, 40, circle); 
    } 
    invalidate(); 

    CountDownTimer count = new CountDownTimer(3000, 1000) { 

     public void onTick(long millisUntilFinished) { 
     } 

     public void onFinish() { 

      CountDownTimer count = new CountDownTimer(3000, 1000) { 

       public void onTick(long millisUntilFinished) { 
        isPop=true; 

       } 

       public void onFinish() { 

        isPop=false; 

       } 

      }.start();    
     } 

    }.start(); 
+0

그 다른 문제가 지금 – cfircoo

+0

죄송합니다 코드는 동일하게 보였지만 나는 (결국) 그 질문이 바뀌 었다는 것을 알아 차렸다. 내 대답이 도움이되기를 바랍니다. – Sam

+0

새로운 질문을하기 위해 방금 내 대답을 편집하려고 한 것처럼 보입니다. 커뮤니티는 새로운 질문을 작성하여 새 질문을해야하기 때문에 제안 된 편집을 거절했습니다. ([ask]) 나는 그것에 대해 내 눈을 떼지 않고 거기에서 당신을 도울 것입니다. – Sam

답변

3

대신 모든보기와 함께 제공되는 처리기의 사용을 고려 나를위한 솔루션을해야합니다 경우 큰 것 :

class TestView extends View { 
    private Paint circle = new Paint(); 
    private boolean isPop = false; 
    private Runnable everyThreeSeconds = new Runnable() { 
     public void run() { 
      // Do something spiffy like... 
      isPop = !isPop; 
      invalidate(); 

      // Don't forget to call you next three second interval! 
      postDelayed(everyThreeSeconds, 3000); 
     } 
    }; 

    public TestView(Context context) { 
     this(context, null); 
    } 

    public TestView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     circle.setColor(Color.BLUE); 
     post(everyThreeSeconds); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     canvas.drawColor(Color.RED); 

     if (isPop){ 
      canvas.drawCircle(100, 100, 40, circle); 
     } 
    } 
} 
+0

View ao Activity 클래스 용입니까? – cfircoo

+0

이 최신 예를 사용하십시오. 그것으로 무엇에 관한 간단한 설명이 필요한지 물어보십시오! – Sam

+0

우수 감사합니다. – cfircoo