Android ProgressBar 分为水平进度条和圆形进度条, 看官方的划分是Indeterminate Progress(不确定的进度) 和 Determinate Progress(决定进度) 下面有2个demo 一个是圆形的进度条和一个水平的进度条

Indeterminate Progress:

当您不知道操作将花费多长时间时,请对进度栏使用不确定模式。不确定模式是进度条的默认模式,它显示循环动画,但未指示特定的进度

这也就是官方的圆形进度条一直在旋转的原因吧

Determinate Progress

如果要显示已发生特定数量的进度,请对进度栏使用确定模式。例如,要检索的文件的剩余百分比,批量写入数据库的记录数量或正在播放的音频文件的剩余百分比。

为了指示确定的进度,您可以将进度条的样式设置为,android.R.style#Widget_ProgressBar_Horizontal并设置进度量

这里说下 android.R.style#Widget_ProgressBar_Horizontal 就是设置样色的时候有2中方式

一种为: style="?android:attr/progressBarStyleHorizontal" 另一种为:style="@android:style/Widget.ProgressBar.Horizontal"

style="?android:attr/progressBarStyleHorizontal" 的方法是系统没有设置style ,背景色之类,等,

style="@android:style/Widget.ProgressBar.Horizontal"  的方法系统设置style,设置进度条背景色,宽度等,

下面是系统的设置 点击code 可以跳转系统设置的style 里面

  <style name="Widget.ProgressBar.Horizontal"><item name="indeterminateOnly">false</item><item name="progressDrawable">@drawable/progress_horizontal</item><item name="indeterminateDrawable">@drawable/progress_indeterminate_horizontal</item><item name="minHeight">20dip</item><item name="maxHeight">20dip</item><item name="mirrorForRtl">true</item></style>

progressBar 的xml 属性如下XML属性

android:animationResolution    动画帧之间的超时(以毫秒为单位)。
android:indeterminate    允许启用不确定模式。
android:indeterminateBehavior    定义进度达到最大值时不确定模式应如何表现。
android:indeterminateDrawable    用于不确定模式的Drawable。
android:indeterminateDuration    不确定动画的持续时间。
android:indeterminateOnly    仅限于不确定模式(状态保持进度模式将不起作用)。
android:interpolator    设置不确定动画的加速度曲线。
android:max    定义最大值。
android:maxHeight    一个可选参数,用于为此视图提供最大高度。
android:maxWidth    提供此视图最大宽度的可选参数。
android:min    定义最小值。
android:minHeight    定义最低高度
android:minWidth    定义最低宽度
android:mirrorForRtl    定义在RTL模式下是否需要镜像关联的可绘制对象。
android:progress    定义默认进度值,介于0到最大值之间。
android:progressDrawable    可绘制用于进度模式。
android:secondaryProgress    定义二级进度值,介于0和最大值之间。

下面是使用系统的方法写的几个效果如下

圆形进度条

1 对于圆形进度条 要修改颜色值可以使用下面的方法

android:indeterminateTint="#00d8a0"

如下 这样就修改了系统圆形进度条的颜色了

    <ProgressBarandroid:layout_width="100dp"android:layout_height="100dp"android:indeterminateTint="#00d8a0"android:indeterminate="false" />

2 圆形动画修改系统的样式 使用的方法 indeterminateDrawable

最下面的菊花就是修改了系统圆形的效果

代码如下

 <ProgressBarandroid:layout_width="100dp"android:layout_height="100dp"android:indeterminateDrawable="@drawable/anim_drawable_bg" />

anim_drawable_bg 的code

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"android:drawable="@drawable/loading"android:fromDegrees="0.0"android:pivotX="50.0%"android:pivotY="50.0%"android:toDegrees="360.0" />

这样就是了一个菊花旋转的效果而,

如果要实现特殊的效果建议自定义了

如下的效果

代码参考 我的另一篇博客地址链接

水平进度条

需要设置属性  style="@android:style/Widget.ProgressBar.Horizontal" 或者  style="?android:attr/progressBarStyleHorizontal" 2中方法的区别上面都说了这里就不多说了

上面的进度code 如下

 <ProgressBarandroid:id="@+id/sys_progress"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="30dp"android:layout_marginTop="20dp"android:max="100" /><ProgressBarandroid:id="@+id/hori_progress"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="20dp"android:layout_marginTop="20dp"android:max="100"android:progress="0"android:progressDrawable="@drawable/hori_progress_drawable_bg" /><ProgressBarandroid:id="@+id/send_progress"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="30dp"android:layout_marginTop="20dp"android:max="100"android:progress="50"android:progressDrawable="@drawable/send_progress_bg"android:secondaryProgress="70" />

水平进度条需要画几个背景色,   进度条的背景色, 缓冲进度条的背景色(没有这个需求可以不要)  进度条的背景色

<?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="5dp" /><solid android:color="@android:color/holo_green_dark" /></shape></item><!--    缓冲进度条的背景色--><item android:id="@android:id/secondaryProgress"><clip><shape><corners android:radius="5dp" /><solid android:color="@android:color/darker_gray" /></shape></clip></item><!--  进度条的背景色--><item android:id="@android:id/progress"><clip><shape><corners android:radius="5dp" /><solid android:color="@android:color/holo_orange_dark"/></shape></clip></item>
</layer-list>

main code

public class HorizontalActivity extends AppCompatActivity implements Handler.Callback {private ProgressBar progressBar;private ProgressBar sysProgressBar;private ProgressBar send_progress;private Handler handler;private int progress = 0;private int sendProgress = 0;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.horizontal_activity_layout);progressBar = findViewById(R.id.hori_progress);sysProgressBar = findViewById(R.id.sys_progress);send_progress = findViewById(R.id.send_progress);handler = new Handler(this);// 循环方法1handler.postDelayed(new Runnable() {@Overridepublic void run() {handler.postDelayed(this, 50);handler.sendEmptyMessage(1);}}, 0);// 循环方法2//        new Thread(new Runnable() {//            @Override//            public void run() {//                try {//                    //子线程循环间隔消息//                    while (progress < 100) {//                        Message msg = new Message();//                        msg.what = 1;//                        handler.sendMessage(msg);//                        Thread.sleep(50);//                    }//                } catch (InterruptedException e) {//                    e.printStackTrace();//                }//            }//        }).start();}@Overridepublic boolean handleMessage(Message msg) {switch (msg.what) {case 1:if (progress == 100) {progress = 0;sendProgress = 0;} else {progress++;sendProgress = 5 + sendProgress;}progressBar.setProgress(progress);sysProgressBar.setProgress(progress);send_progress.setProgress(progress);send_progress.setSecondaryProgress(sendProgress);break;}return false;}
}

progress 还有几个其他的属性,设置,大小之类的,感觉实用性不强,这里就不列举了,

Android ProgressBar 的使用相关推荐

  1. 使用Kotlin的Android ProgressBar

    In this tutorial, we'll discuss and implement ProgressBar in our Android Application using Kotlin. 在 ...

  2. Android ProgressBar示例

    Welcome to Android ProgressBar Example. Today we'll implement android ProgressBar in our application ...

  3. android progressbar 循环,Android ProgressBar消失

    我有一个不确定的android progressbar,所以它只是一个循环动画. 它开始显示很好,但是在我设置了它的父对象的可见性之后( overlayLayout )若要消失或不可见,然后稍后将其设 ...

  4. Android ProgressBar控件

    1. ProgressBar类 ProgressBar用于显示进度条,进度条有两种不同的样式,选择和水平,通过设置style来区分. 旋转进度条,有大.中.小三种样式. style="?an ...

  5. Android ProgressBar 加载中界面实现(loading 动画) 实现菊花的效果

    实现的效果图如下: 使用方法ProgressBar ,如果感觉 这个动画不是自己想要的,需要根据ui的图片来实现只需要将xml中的animated-rotate 修改为animation-list 贴 ...

  6. 使用android ProgressBar和Toast生成一个界面

    为什么80%的码农都做不了架构师?>>>    首先我需要这样一个界面 这个界面是在使用AudioManager.adjustStreamVolume(int streamType, ...

  7. Android 基础教程之-------Android ProgressBar的使用!

    大家好,今天给大家讲一下Android中ProgressBar的使用,这个控件在开发中还是经常用到的,比如用户浏览网页的时候,中间肯定有个 传输过程,所以用进度条让用户耐心等待.再比如我在Androi ...

  8. android ProgressBar 使用方法

    <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android=&quo ...

  9. Android ProgressBar 反向进度条/进度条从右到左走

    近期的项目,有个需求须要使用条状图显示比例,而且右对齐,见下图: 我想到了使用进度条,这样不就不须要在代码动态绘制条状了,省了非常多活. 那么进度条如何从右向左显示呢? 方案一: 将ProgressB ...

最新文章

  1. 第36章 网络管理
  2. boost的字符串处理函数——format
  3. 让你的eclipse插件只下载一次
  4. 服务器智能监控软件,监控 监控系统 消防智能监控 智能监控软件
  5. “金主爸爸快回来交学费吧!”疫情让中国留学生难以返校,国外高校面临资金短缺...
  6. Ubantu键盘快捷键
  7. 图片合成gif_谈谈有哪些好用的制作GIF的方式
  8. java中的字符串_java中字符串的操作
  9. 另辟蹊径:从其他角度去解决数据库问题
  10. C++之构造函数和类型转换探究
  11. python filter_Python filter()
  12. 关于jQuery性能优化
  13. 20181109_任务
  14. python opencv视频流_python – PyQt显示来自opencv的视频流
  15. 编程珠玑java_编程珠玑第八章
  16. 禁用word公式编辑器
  17. 客户端,从服务器上下载文件流程
  18. 苹果开发者注册了邓白氏编码不能用,查询时提示该组织不存在怎么办?
  19. 上手评测:华为nova8和nova7Pro哪个好?区别是什么
  20. 【Vivado】 [Place 30-574] 时钟使用普通IO时的报错解决办法

热门文章

  1. 一文读懂误差的偏差方差
  2. oracle if not exist,使用IF NOT EXISTS创建数据表
  3. turtle画画 画图形
  4. 华三路由器链路聚合配置(H3C华三链路聚合的原理)
  5. vim 保存只读文件的修改
  6. C++程序安装包被病毒篡改导致启动报错
  7. CPU缓存与性能优化
  8. python两个字符串查找公共字符串
  9. ElasticSearch(五) 倒排索引与分词
  10. 吴建国 安徽大学 计算机学院,一场高质量、高层次的教育研讨会--中国科学技术大学、安徽大学、解放军电子工程学院教授莅临我院指导纪实...