ProgressDialog对话框形式显示下载进度

此文,仅做为个人学习Android,记录成长以及方便复习!

首先是设置UI界面,添加一个下载按钮

1.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:id="@+id/down"
        android:text="下载"
        android:textSize="50sp"/>
</RelativeLayout>

接下来就是Activity

MainAcitivity.xml

package com.rui.progressbardome;

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Button down;//创建按钮
    private ProgressDialog progressDialog;//创建ProgressDialog
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //实例化按钮
        down = (Button) findViewById(R.id.down);

        //添加监听事件
        down.setOnClickListener(new View.OnClickListener() {
            //实现监听方法
            @Override
            public void onClick(View view) {
                   progressDialog =  new ProgressDialog(MainActivity.this);//实例化ProgressDialog
                   progressDialog.setMax(100);//设置最大值
                   progressDialog.setTitle("文件下载");//设置标题
                   progressDialog.setIcon(R.drawable.img1);//设置标题小图标
                   progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置样式为横向显示进度的样式
                   progressDialog.setMessage("海贼王大结局正在下载,请稍后!");
                   progressDialog.incrementProgressBy(0);//设置初始值为0,其实可以不用设置,默认就是0
                   progressDialog.setIndeterminate(false);//是否精确显示对话框,flase为是,反之为否

                new download().start();//实例化下载类strat模拟下载线程

                //添加确定按钮
                //参数1 设置按钮样式
                //参数2,设置按钮文本
                //参数3,设置按钮监听事件
                progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定",new DialogInterface.OnClickListener(){

                       @Override
                       public void onClick(DialogInterface dialogInterface, int i) {
                           Toast.makeText(MainActivity.this,"确认下载完毕!",Toast.LENGTH_SHORT).show();
                       }
                   });


                   //是否可以通过返回按钮退出对话框
                   progressDialog.setCancelable(true);
                   progressDialog.show();//显示对话框
            }
        });
    }

    //创建线程,模拟下载
    class download extends Thread{
        @Override
        public void run() {
            //模拟下载进度
            for(int i=0;i<progressDialog.getMax();i++){
                try {
                    //睡眠500毫秒
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                //i值赋予进度条累加
                progressDialog.incrementProgressBy(i);
            }
        }
    }
}
效果如图!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值