如何在将多个图像文件发送到电子邮件时显示进度条

时间:2012-09-05 07:06:05

标签: android progress-bar

我有一个Intent类,可以将多个图像作为附件发送到电子邮件中。所以一切正常。唯一的问题是当没有图像超过20时,Intent类需要时间来打开特定的邮件客户端。所以在那段时间我想向用户显示进度条。所以任何人都帮我解决这个问题。我发送多张图片的代码如下所示。

ArrayList<Uri> uris = new ArrayList<Uri>();

for(int i = 0; i< NoteManager.getSingletonObject().getNoteItemCount(); i++)
{
    File imageFile = new File(m_ShareDir, NoteManager.getSingletonObject().getNote(i));
    ContentValues values = new ContentValues(2);
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/png");
    values.put(MediaStore.Images.Media.DATA, imageFile.getAbsolutePath());

    Uri  imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);  

    uris.add(imageUri);
}

Intent intent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/png");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Intent.createChooser(intent, getResources().getString(R.string.share_send_text)));

2 个答案:

答案 0 :(得分:2)

它可以帮助你

ProgressDialog pd = ProgressDialog.show(SetFrames.this,"Loading", "Please 

Wait...",true);
           new Thread() {
               public void run() {
               try {
                //do your process
               }catch(Exception e)
               {
               }
               handler.sendEmptyMessage(0);
               pd.dismiss();
               }

               }.start();

private Handler handler = new Handler() {
        public void handleMessage(Message msg) {

        }
        };

答案 1 :(得分:0)

试试这个。 tutorial。我认为这是一个很好的例子,它显示了进度项one by one.
享受...