2012-04-20 13 views
18

मैं एंड्रॉइड के लिए एक प्रश्नोत्तरी कर रहा हूं और मुझे हर प्रश्न का उत्तर देने के लिए सीमित समय चाहिए। तो मैं उन उत्तरों के तहत प्रोग्रेसबार प्रदर्शित करना चाहता हूं जो नीचे से गिना जाता है, उदाहरण के लिए, 5 से 0 (सेकेंड)। और जब यह शून्य तक पहुंच जाता है तो मैं कुछ सामान करना चाहता हूं। मेरे पास प्रश्नोत्तरी और सब कुछ काम कर रहा है, मैं सिर्फ प्रोग्रेसबार जोड़ना चाहता हूं।एंड्रॉइड प्रोग्रेसबार उलटी गिनती

अग्रिम धन्यवाद!

उत्तर

40

आप एंड्रॉइड में उलटी गिनती टाइमर का उपयोग कर सकते हैं।

यहाँ एक उदाहरण आप उल्लेख कर सकते हैं Click Here

आप अपनी गतिविधि में ProgressBar नीचे का उपयोग कर सकते है।

<ProgressBar 
    android:id="@+id/progressbar" 
    style="@android:style/Widget.ProgressBar.Horizontal" 
    android:max="100" 
    android:progress="0" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/bottom_header_relativelayout" 
    /> 

CountDownTimer का उपयोग करें अपनी गतिविधि में कोड के नीचे।

ProgressBar mProgressBar; 
CountDownTimer mCountDownTimer; 
int i=0; 

mProgressBar=(ProgressBar)findViewById(R.id.progressbar); 
mProgressBar.setProgress(i); 
    mCountDownTimer=new CountDownTimer(5000,1000) { 

     @Override 
     public void onTick(long millisUntilFinished) { 
      Log.v("Log_tag", "Tick of Progress"+ i+ millisUntilFinished); 
      i++; 
      mProgressBar.setProgress((int)i*100/(5000/1000)); 

     } 

     @Override 
     public void onFinish() { 
     //Do what you want 
      i++; 
      mProgressBar.setProgress(100); 
     } 
    }; 
    mCountDownTimer.start(); 
+0

एक ProgressBar साथ कि काम करता है के लिए कोई ज़रूरत नहीं? क्योंकि मैं इसे प्रदर्शित करना चाहता हूं। – simtaxman

+0

क्या आप इसे एक्सएमएल लेआउट पर प्रदर्शित करना चाहते हैं, मेरा मतलब है कि आप प्रोग्रेस राइट के साथ पॉप अप नहीं करना चाहते हैं। – Herry

+0

ओके धन्यवाद! – simtaxman

25

आप एक ObjectAnimator का उपयोग ProgressBar की प्रगति चेतन करने के लिए कर सकते हैं:

ObjectAnimator animation = ObjectAnimator.ofInt(pb, "progress", 0, 100); 
animation.setDuration(5000); 
animation.setInterpolator(new DecelerateInterpolator()); 
animation.addListener(new Animator.AnimatorListener() { 
    @Override 
    public void onAnimationStart(Animator animator) { } 

    @Override 
    public void onAnimationEnd(Animator animator) { 
     //do something when the countdown is complete 
    } 

    @Override 
    public void onAnimationCancel(Animator animator) { } 

    @Override 
    public void onAnimationRepeat(Animator animator) { } 
}); 
animation.start(); 
+1

यह समझ में आता है – John

1

XML घोषणा

ProgressDialog TempDialog; 
CountDownTimer CDT; 
int i =5; 

TempDialog = new ProgressDialog(Your_Class_Name.this); 
TempDialog.setMessage("Please wait..."); 
TempDialog.setCancelable(false); 
TempDialog.setProgress(i); 
TempDialog.show(); 

CDT = new CountDownTimer(5000, 1000) 
{ 
    public void onTick(long millisUntilFinished) 
    { 
     TempDialog.setMessage("Please wait.." + i + " sec"); 
     i--; 
    } 

    public void onFinish() 
    { 
     TempDialog.dismiss(); 
     //Your Code ... 
    } 
}.start();