Android开发教程正在上传的进度弹框

99 阅读1分钟
Android开发教程正在上传的进度弹框

往往上传视频或者大的文件,需要正在上传的进度弹框提示用户

一、思路:

自定义弹框

二、效果图:

在这里插入图片描述

三、关键代码:
public class MainActivity extends AppCompatActivity {

    private UploadVideoDialog uploadVideoDialog;
    private Context context;

    private Handler mHandler;
    private int progress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        context = this;
        mHandler = new Handler();


        findViewById(R.id.tv_start_upload).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uploadVideoDialog = AppDialogUtils.moodVideoUploadDialog(context);
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        uploadVideoDialog.getPr_upload_value().setProgress(++progress);
                        if (progress<100){
                            mHandler.postDelayed(this,500);
                        } else {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    uploadVideoDialog.getDialog().dismiss();
                                    Toast.makeText(context,"上传完成",Toast.LENGTH_SHORT).show();
                                }
                            });
                        }
                    }
                });

            }
        });
    }
}
public class UploadVideoDialog {
    private Dialog dialog;
    private ProgressBar pr_upload_value;

    public UploadVideoDialog(Dialog dialog, ProgressBar pr_upload_value) {
        this.dialog = dialog;
        this.pr_upload_value = pr_upload_value;
    }

    public Dialog getDialog() {
        return dialog;
    }

    public void setDialog(Dialog dialog) {
        this.dialog = dialog;
    }

    public ProgressBar getPr_upload_value() {
        return pr_upload_value;
    }

    public void setPr_upload_value(ProgressBar pr_upload_value) {
        this.pr_upload_value = pr_upload_value;
    }
}
四、项目demo源码结构图:

在这里插入图片描述

有问题或者需要完整源码demo的可以看简介联系我,也可以私信我,我每天都看私信的