此文,仅做为个人学习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);
}
}
}
}
效果如图!