2014-11-07 2 views
1

Я хочу показать пользовательское предупреждение Crouton с индикатором выполнения, и я хочу динамически обновлять ход. Это мой код, но он не работает. Как я могу это сделать? Или, как может показать прогресс бар во время загрузки изображенияМожно ли использовать индикатор прогресса в Crouton?

private void showCustomViewCrouton() { 
    // try { 
    View view = getLayoutInflater().inflate(R.layout.crouton_custom_view,null); 
    pB = (ProgressBar) view.findViewById(R.id.progressBar1); 
    final Crouton crouton; 
    final Configuration croutonConfig = new Configuration.Builder() 
      .setDuration(Configuration.DURATION_INFINITE) 
      .setInAnimation(android.R.anim.fade_in) 
      .setOutAnimation(android.R.anim.fade_out).build(); 
    crouton = Crouton.make(this, view, R.id.croutonContainer, croutonConfig);  
    view.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      crouton.hide(crouton); 
     } 
    }); 

    crouton.show(); 

    try{ 
     do{ 
       Thread.sleep(100); 
       deger+=1; 
       pB.setProgress(deger);   
     }while(deger<101);  
    }catch(Exception e){ 

    }  
} 

ответ

3

Вот как я сделал это

final ProgressBar progressBar = new ProgressBar(this,null,android.R.attr.progressBarStyleHorizontal); 
progressBar.setIndeterminate(false); 

Crouton ct = Crouton.make(this,progressBar); 
ct.show(); 

/* Update it While Showing */ 
Thread progressUpdateThread = new Thread(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     for(int i=0;i<100;i++) 
     { 
      final int progress = i; 
      runOnUiThread(new Runnable() 
      { 
       @Override 
       public void run() 
       { 
        progressBar.setProgress(progress); 
       } 
      }); 

      try 
      { 
       Thread.sleep(100); 
      } 
      catch (InterruptedException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    } 
}); 
progressUpdateThread.start();  
1

я хочу поделиться своим новым кодом. Я раздуваю обычную Крютон. Я написал это с помощью кода @Kirtan Patel. спасибо ему снова.

private void showCustomViewCrouton() { 
    // try { 
    View view = getLayoutInflater().inflate(R.layout.crouton_custom_view,null); 
    pB = (ProgressBar) view.findViewById(R.id.progressBar1); 
    final Crouton crouton; 
    final Configuration croutonConfig = new Configuration.Builder() 
      .setDuration(Configuration.DURATION_INFINITE) 
      .setInAnimation(android.R.anim.fade_in) 
      .setOutAnimation(android.R.anim.fade_out).build(); 
    crouton = Crouton.make(this, view, R.id.croutonContainer, croutonConfig);  
    view.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      crouton.hide(crouton); 
     } 
    }); 

    crouton.show(); 

    try{ 
     Thread progressUpdateThread = new Thread(new Runnable() { 
      @Override 
      public void run() { 
       for (int i = 0; i < 100; i++) { 
        final int progress = i; 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          pB.setProgress(progress); 
         } 
        }); 

        try { 
         Thread.sleep(100); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
     }); 

     progressUpdateThread.start();  
    }catch(Exception e){ 

    }  
} 
Смежные вопросы