0

我想显示带有进度条的自定义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){

    }       
}
4

2 回答 2

2

这是我的做法

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();    
于 2014-11-07T07:43:38.350 回答
0

我想分享我的新代码。我给定制的面包块充气。我使用@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){

    }       
}
于 2014-11-07T11:55:22.967 回答