一起学Android之ProgressBar
本文简述在Android开发中进度条(ProgressBar)的常见应用,仅供学习分享使用。
概述
在Android开发中,进度条的使用场景有很多,如播放电影时可拖动的观看进度条,评分时使用的评分条,上传下载时的进度条,网络加载时的圆形进度条等。本文主要讲解三种进度条的常见用法:ProgressBar,SeekBar,RatingBar。
ProgressBar常见用法
ProgressBar涉及知识点
- android:max 设置进度条的最大进度
- android:progress 设置进度条的当前进度(如播放视频的播放进度)
- android:secondaryProgress 设置进度条的第二进度(如播放视频时的缓冲进度)
- style="?android:attr/progressBarStyleHorizontal" 设置进度条的样式(水平样式)
- style="?android:attr/progressBarStyleLarge" 设置进度条的样式(垂直样式),圆形进度条
- isIndeterminate() 判断进度条的形状,true:水平 false:圆形
- incrementProgressBy(10) 增加当前的进度 incrementSecondaryProgressBy(10) 增加当前的第二进度。
ProgressBar效果图如下图所示:

ProgressBar示例代码:
<LinearLayout
android:id="@+id/ll_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ll_seeking"
android:layout_marginTop="8dp"
android:layout_marginRight="15dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/progress1"
android:textSize="20dp"/>
<ProgressBar
android:id="@+id/pb_01"
android:max="100"
android:progress="30"
android:layout_marginLeft="10dp"
android:secondaryProgress="40"
style="?android:attr/progressBarStyleHorizontal"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="40dp"/>
</LinearLayout>
<TextView
android:id="@+id/tv_progress2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ll_progress"
android:layout_marginTop="8dp"
android:text="@string/progress2"
android:textSize="20dp"/>
<ProgressBar
android:id="@+id/pb_02"
android:layout_alignLeft="@id/rbar"
android:layout_below="@id/ll_progress"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
SeekBar常见用法
SeekBar涉及知识点
- android:max ,android:progress ,android:secondaryProgress此三个属性和ProgressBar相同,参考上面。
- setOnSeekBarChangeListener 用于设置SeekBar的监听事件,监听用户拖动的状态。
- OnSeekBarChangeListener表示一个接口,有三个函数需要实现:
- onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) //进度改变
- onStartTrackingTouch(SeekBar seekBar) //开始触摸
- onStopTrackingTouch(SeekBar seekBar) //停止触摸
SeekBar效果图如下图所示:

SeekBar示例代码
//监控SeekBar事件
mSeekBar=(SeekBar)this.findViewById(R.id.sbar);
mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
Log.i("DemoBar", "SeekBar-->setOnSeekBarChangeListener: "+String.valueOf(progress)+"-->fromUser:"+String.valueOf(fromUser));
mSeekText.setText(String.valueOf(progress));
} @Override
public void onStartTrackingTouch(SeekBar seekBar) { } @Override
public void onStopTrackingTouch(SeekBar seekBar) { }
});
RatingBar常见用法
RatingBar涉及知识点
- android:numStars 表示星星的个数,默认为5个
- android:rating 表示当前的分值
- android:stepSize 表示步长,及前进一次多长的跨度,如,0.5表示半颗星星 1表示一颗心
- setOnRatingBarChangeListener 设置监听事件,
- OnRatingBarChangeListener 表示一个接口,只有一个函数需要实现:
- onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser)
RatingBar效果图如下图所示:

RatingBar示例代码
mRatingBar =(RatingBar) this.findViewById(R.id.rbar);
mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Log.i("DemoBar", "RatingBar-->onRatingChanged: "+String.valueOf(rating)+"-->fromUser:"+String.valueOf(fromUser));
mRatingText.setText(String.valueOf(rating));
}
});
备注
一起学习,一起总结,一起进步。附上整体演示图片

一起学Android之ProgressBar的更多相关文章
- Android 使用ProgressBar实现进度条
ProgressBar简介ProgressBar是进度条组件,通常用于向用户展示某个耗时操作完成的进度,而不让用户感觉是程序失去了响应,从而更好地提升用户界面的友好型. 课程目标(1)制定Progre ...
- Android开发学习之路-该怎么学Android(Service和Activity通信为例)
在大部分地方,比如书本或者学校和培训机构,教学Android的方式都基本类似,就是告诉先上原理方法,然后对着代码讲一下. 但是,这往往不是一个很好的方法,为什么? ① 学生要掌握这个方法的用途,只能通 ...
- 菜鸟学Android编程——简单计算器《一》
菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...
- Android之ProgressBar初步应用
这里利用 ProgressBar 即时显示下载进度. 途中碰到的问题: 1.主线程中不能打开 URL,和只能在主线程中使用 Toast 等 2.子线程不能修改 UI 3.允许网络协议 4.暂停下载和继 ...
- 学Android开发,入门语言java知识点
学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...
- java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.ProgressBar$SavedState
java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.Progress ...
- Android之ProgressBar
今天复习一下以前的知识,补充一下ProgressBar控件 progressBar是进度条组件,通常用于用户展示某个耗时操作完成的进度,而不让用户感觉是程序失去了响应,从而更好地提升用户界面的友好性. ...
- Android自定义progressBar
通过继承系统ProgressBar实现 效果图 实现 HorizontalProgressBarWithNumber 自定义属性 <?xml version="1.0" en ...
- DoNet屌丝学Android(一)——Android开发准备工作 & No HelloWord & (真机)调试
先乱扯淡一下吧,本人一.net屌丝,手持Android 4.2.2手机,Win7 x64本本,闲来无聊学习一下Android的开发,至于要开发啥玩意目前没有什么想法,就是想学学,搞不好是三分热度也有可 ...
随机推荐
- xss攻击和csrf攻击的定义及区别
1.CSRF的基本概念.缩写.全称 CSRF(Cross-site request forgery):跨站请求伪造. PS:中文名一定要记住.英文全称,如果记不住也拉倒. 2.CSRF的攻击原理 用户 ...
- 驰骋工作流引擎 -CCBPM如何自动升级
关键词:工作流引擎自动升级 工作流自动升级升级步骤设置1,CCBPM把更新分成三类, 应用程序代码更新.数据表结构更新.数据更新.2,CCBPM在您登录流程设计器时自动判断当前的版本与数据库版本是 ...
- 一目了然呀的VS2017 Live Test
刚刚试用了一下VS2017中的单元测试,发现,这一次,覆盖测试会自动标记出来.不用像以前一样要他细检查了.这次会自动帮你全部标记出来. 新建单元测试,使用MS的单元测试方案(VSTS使用的时候方便.) ...
- 一张图看懂 SQL 的各种 join 用法
下图展示了 LEFT JOIN.RIGHT JOIN.INNER JOIN.OUTER JOIN 相关的 7 种用法. 具体分解如下: 1.INNER JOIN(内连接) 2.LEFT J ...
- SQLServer之附加数据库
附加数据库注意事项 必须首先分离数据库. 尝试附加未分离的数据库将返回错误. 附加数据库时,所有数据文件(MDF 文件和 LDF 文件)都必须可用. 如果任何数据文件的路径不同于首次创建数据库或上次附 ...
- wep api 运行周期
1 程序集解析 2.HttpController类型的解析 3.HttpController 的选择 4.HttpController的创建 二,web api的承载宿主,iis selfhost.O ...
- WireShark捕获HTTPS
firefox,chrome会将 TLS 会话中使用的对称密钥保存在外部文件中. 1.建立环境变量 linux,mac 使用export建立变量:export SSLKEYLOGFILE=/tmp/s ...
- android学习笔记--AlarmManager
AlarmManager称呼为全局定时器,有的称呼为闹钟.其实它的作用和Timer有点相似. 都有两种相似的用法: (1)在指定时长后执行某项操作(2)周期性的执行某项操作 AlarmManager ...
- Vue父子组件传参新写法
以前我在写接受自定义事件是这么写的: 后来我在官网看到这样一种说法:可以用$event代替emit事件传入的参数,于是我写成了这样: 直到昨天Vetur更新,给我报了这么一个错误: 报错原因:事件不能 ...
- 强化学习(八)价值函数的近似表示与Deep Q-Learning
在强化学习系列的前七篇里,我们主要讨论的都是规模比较小的强化学习问题求解算法.今天开始我们步入深度强化学习.这一篇关注于价值函数的近似表示和Deep Q-Learning算法. Deep Q-Lear ...