进度条ProgressBar及ProgressDialog(实例)
程序员文章站
2023-08-25 12:33:56
废话不多说,直接上代码
main代码
package processdemo.example.administrator.processbardemo;...
废话不多说,直接上代码
main代码 package processdemo.example.administrator.processbardemo; import android.app.dialog; import android.app.progressdialog; import android.content.dialoginterface; import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.util.log; import android.view.view; import android.view.window; import android.widget.button; import android.widget.progressbar; import android.widget.textview; import android.widget.toast; public class mainactivity extends appcompatactivity implements view.onclicklistener{ /*progressbar 简介:progressbar是进度条组件,通常用于向用户展示某个耗时操作完成的进度,而不让用户感觉是程序失去了响应,从而更好地提升用户界面的友好性 课程目标: 1、制定progressbar显示风格(系统默认) 2、progressbar的分类 水平进度条,能精确显示,圆圈进度条,不精确显示 3、标题上progressbar的设置 4、progressbar的关键属性 5、progressbar的关键方法 6、progressdiglog的基础使用 7、自定义progressbar样式*/ private progressbar progressbar3; private button show; private button add; private button res; private button reset; private textview textview; private progressdialog progressdialog; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // 启用窗口特征,启用带进度的进度条和不带进度的进度条, requestwindowfeature(window.feature_progress); requestwindowfeature(window.feature_indeterminate_progress); setcontentview(r.layout.activity_main); setprogressbarvisibility(true); setprogressbarindeterminatevisibility(false); // 最大值为max=10000; //setprogress(600); init(); } private void init() { ; progressbar3= (progressbar) findviewbyid(r.id.progressbar3); show= (button) findviewbyid(r.id.show); add= (button) findviewbyid(r.id.add); res= (button) findviewbyid(r.id.res); reset= (button) findviewbyid(r.id.reset); textview= (textview) findviewbyid(r.id.textview); int first=progressbar3.getprogress();/*获取第一进度*/ int second=progressbar3.getsecondaryprogress();/*获取第二进度*/ int max=progressbar3.getmax();/*获取最大进度*/ textview.settext("第一进度条百分比"+(int)((first/(float)max)*100)+"%"+"第二进度条百分比"+(int)(second/(float)max*100)+"%"); add.setonclicklistener(this); res.setonclicklistener(this); reset.setonclicklistener(this); show.setonclicklistener(this); } @override public void onclick(view v) { switch (v.getid()){ case r.id.add: progressbar3.incrementprogressby(10); progressbar3.incrementsecondaryprogressby(10); break; case r.id.res: progressbar3.incrementprogressby(-10); progressbar3.incrementsecondaryprogressby(-10); break; case r.id.reset: progressbar3.setprogress(50); progressbar3.setsecondaryprogress(50); break; case r.id.show: // 新建progressdialog对象 progressdialog=new progressdialog(mainactivity.this); // 设置显示风格 progressdialog.setprogressstyle(progressdialog.style_horizontal); // 设置标题 progressdialog.settitle("慕课网"); // 设置对话框的内容 progressdialog.setmessage("欢迎大家支持慕课网"); // 设置图标 progressdialog.seticon(r.mipmap.ic_launcher); /*设置关于进度条的一些属性*/ // 设置最大进度 progressdialog.setmax(100); // 设置初始化已经增长的进度 progressdialog.incrementprogressby(50); // 设置进度条明确显示进度 progressdialog.setindeterminate(false); /* 设定一个确定按钮*/ progressdialog.setbutton(dialoginterface.button_positive,"确定", new dialog.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { toast.maketext(mainactivity.this,"欢迎大家支持慕课网",toast.length_short).show(); } }); // 是否可以通过返回按钮来取消对话框 progressdialog.setcancelable(true); // 显示progressdialog progressdialog.show(); } textview.settext("第一进度条百分比"+(int)((progressbar3.getprogress()/(float)progressbar3.getmax())*100)+"%"+"第二进度条百分比"+(int)(progressbar3.getsecondaryprogress()/(float)progressbar3.getmax()*100)+"%"); } }
layout中activity_main.xml代码
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="processdemo.example.administrator.processbardemo.mainactivity"> <progressbar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/progressbar" android:layout_alignparenttop="true" android:layout_alignparentstart="true" android:layout_margintop="112dp" /> <progressbar style="?android:attr/progressbarstylesmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/progressbar2" android:layout_centervertical="true" android:layout_alignparentend="true" android:layout_marginend="256dp" /> <progressbar style="@android:style/widget.progressbar.horizontal" android:max="100" android:progress="50" android:secondaryprogress="80" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/progressbar3" android:layout_alignparentbottom="true" android:layout_alignstart="@+id/progressbar2" android:layout_marginbottom="81dp" android:layout_aligntop="@+id/res" android:progressdrawable="@layout/progress"/><!--progressdrawable改变样式--> <progressbar style="?android:attr/progressbarstylelarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/progressbar4" android:layout_above="@+id/reset" android:layout_centerhorizontal="true" /> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/增加" android:id="@+id/add" android:layout_alignparentbottom="true" android:layout_alignparentend="true" /> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/减少" android:id="@+id/res" android:layout_above="@+id/add" android:layout_alignparentend="true" /> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/重置" android:id="@+id/reset" android:layout_alignbottom="@+id/progressbar3" android:layout_alignparentend="true" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="进度" android:id="@+id/textview" android:layout_below="@+id/progressbar" android:layout_alignparentend="true" /> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/显示进度条" android:id="@+id/show" android:layout_below="@+id/progressbar2" android:layout_alignparentend="true" /> </relativelayout> <!-- progressbar关键属性 1.android:max ---最大显示进度 2.android:progress ---第一显示进度 3.android:secondaryprogress---第二显示进度 4.android:isdeterminate ---设置是否精确显示(false为精确,true为不精确)-->
layout中progress.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <item android:id="@android:id/background"> <shape> <corners android:radius="5dip" /> <gradient android:startcolor="#76cf76" android:centercolor="#125912" android:centery="0.75" android:endcolor="#212621" android:angle="270" /> </shape> </item> <item android:id="@android:id/secondaryprogress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:startcolor="#80b51638" android:centercolor="#80a47d1a" android:centery="0.75" android:endcolor="#a066c3a7" android:angle="270" /> </shape> </clip> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:startcolor="#a38c1c" android:centercolor="#55a6b6" android:centery="0.75" android:endcolor="#b59826" android:angle="270" /> </shape> </clip> </item> </layer-list>
以上这篇进度条progressbar及progressdialog(实例)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
下一篇: Android动画之小球拟合动画实例
推荐阅读
-
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
-
Android编程实现自定义ProgressBar样式示例(背景色及一级、二级进度条颜色)
-
实例详解Android自定义ProgressDialog进度条对话框的实现
-
Android ProgressBar直线进度条的实例代码
-
Android ProgressBar直线进度条的实例代码
-
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
-
进度条ProgressBar及ProgressDialog(实例)
-
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
-
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO_PHP
-
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO