Progress实践
来源:互联网 发布:linux 开发工具 编辑:程序博客网 时间:2024/04/28 15:49
Progress有两个进度,一个是android:progress,另一个是android:secondaryProgress,后者主要是和缓存之类的相关,前者是为了当前进度相关。
ProgressBar分为确定的和不确定的,上面说的播放进度、缓存等就是确定的。相反地,不确定的就是不清楚、不确定一个操作需要多长时间来完成,这个时候就需要用的不确定的ProgressBar了。这个是由属性android:indeterminate来控制的,如果设置为false的话,那么ProgressBar就可能是圆形的滚动条或者水平的滚动条(由样式决定)。默认情况下,如果是水平进度条,那么就是确定的。
ProgressBar的样式可以自己设定,也可以用系统提供的样式。
1.具体在Xml文件中设定一个progressbar:
<ProgressBar android:id="@+id/myprogressbar" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="30dp" android:indeterminate="false" android:max="100" android:progress="50" android:secondaryProgress="80" />
max:设置最大进度。
progress:设置第一进度的默认进度。
secondaryProgress:设置第二进度的默认进度。
在代码中控制,首先要声明在xml中定义的progressbar,然后写一个自动增长的例子(用到了AA框架):
@Click(R.id.aiprogressbar) void Aiprogressbar() { first = 1; jiajiaprogress(); } @Background void jiajiaprogress() { while (myprogressbar != 100) { try { Thread.sleep(500); coucouprogress(); } catch (InterruptedException e) { e.printStackTrace(); } } } @UiThread void coucouprogress() { myprogressbar.incrementProgressBy(first); myprogressbar.incrementSecondaryProgressBy(first); Log.e("11111", myprogressbar.getProgress() + ""); progresstext.setText("第一进度条的进度:" + myprogressbar.getProgress() + "% ,第二进度条的进度:" + myprogressbar.getSecondaryProgress() + "%"); }
当点击按钮的时候,progressbar就会按照给定的first的值进行自增长。
increamentProgressBy(),这个方法增加进度条时传入大于零的值,减少时传入小于零的值。
2.在对话框中展示一个进度条
@Click(R.id.progresswithdialog) void showprogressdialog() { //增量 first = 1; //自增长控制 dialogdms = true; //声明对象 proDialog = new ProgressDialog(Main3Activity.this); //设置进度条样式 proDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置进度条标题栏文字 proDialog.setTitle("学习了!"); //设置进度条附带信息 proDialog.setMessage("哈哈哈,你学会了吗。"); //设置进度条图标 proDialog.setIcon(getResources().getDrawable(R.drawable.ic_launcher)); //设置进度条最大长度 proDialog.setMax(100); //自增长的方法 bgproDialogIncre(proDialog); //设置进度条是否精确显示,false为精确显示,true为不精确显示。Indeterminate :adj,不定的,不明确的;模糊的 proDialog.setIndeterminate(false); //设置doalog的点击按钮 //参数1:按钮样式,选值有:BUTTON_POSITIVE,BUTTON_NEGATIVE,BUTTON_NEUTRAL,参数2:显示内容,参数3:按钮的点击监听器 proDialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.e("11111", "Click"); progresstext.setText("你真的学会了?"); } }); //设置返回键退出dialog proDialog.setCancelable(true); //设置dialog消失监听 proDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { dialogdms = false; } }); proDialog.show(); } @Background void bgproDialogIncre(ProgressDialog proDialog) { while (dialogdms && proDialog.getProgress() != 100) { try { Thread.sleep(50); proDialogIncre(); } catch (InterruptedException e) { e.printStackTrace(); } Log.e("11111", "我正在学习。"); } } @UiThread void proDialogIncre() { proDialog.incrementProgressBy(first); }3.自定义progressbar有两种方法,一个是覆盖系统的progressDrawable字段,自己定义一个xml文件,在布局中指定给progressbar:
<ProgressBar android:id="@+id/myprogressbar" style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="30dp" android:indeterminate="false" android:max="100" android:progressDrawable="@drawable/my_progressbar" android:progress="50" android:secondaryProgress="80" />my_progressbar.xml:
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape> <corners android:radius="5dip" /> <solid android:color="#88000000" /> <gradient android:angle="270" android:centerColor="#ff5a5d5a" android:centerY="0.5" android:endColor="#88aa0000" android:startColor="#88aa0000" /> </shape> </item> <item android:id="@android:id/secondaryProgress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:centerColor="#C6B7FF" android:centerY="0.5" android:endColor="#939393" android:startColor="#939393" /> </shape> </clip> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:centerColor="#88aaEBFF" android:centerY="0.5" android:endColor="#8EEFFF" android:startColor="#8EEFFF" /> </shape> </clip> </item></layer-list>第二种是自定义view。
0 0
- Progress实践
- Progress
- Progress Control
- other progress
- progress bar
- PROGRESS SQL
- Progress用法
- html5 progress
- html5 progress
- 自定义progress
- Work Progress
- 进度条progress
- 自定义Progress
- Progress事件
- Progress进度条
- 自定义Progress
- progress.hpp
- Linux_Program Progress
- java8中的Lambda表达式
- ruby语法课1
- lod详解
- Android 默认暗码
- oracle 实现不同字段显示成一行数据
- Progress实践
- 取消Win10系统Alt+Tab中的缩略图预览功能
- storyboard tableview section
- jQuery 性能优化
- 程序员面试金典第一章:数组与字符串(1) 确定字符互异
- Java 字符串
- jedis操作redis
- 13.JAVA基础:八进制,十六进制表示
- 【LeetCode】 462. Minimum Moves to Equal Array Elements II