一起学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的开发,至于要开发啥玩意目前没有什么想法,就是想学学,搞不好是三分热度也有可 ...
随机推荐
- javaScript设计模式之----工厂模式
什么是工厂模式?我们通过一个例子了解一下: 比如我们想要弹出几个字符串 function funA(){ alert('a'); } function funB(){ alert('b'); } fu ...
- 强化学习(十九) AlphaGo Zero强化学习原理
在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...
- Netty源码—六、tiny、small内存分配
tiny内存分配 tiny内存分配流程: 如果申请的是tiny类型,会先从tiny缓存中尝试分配,如果缓存分配成功则返回 否则从tinySubpagePools中尝试分配 如果上面没有分配成功则使用a ...
- Spring Boot入门(一):使用IDEA创建Spring Boot项目并使用yaml配置文件
由于公司最近在做技术转型(从.Net转Java),因此自己也开启了学习Java之路.学习Java怎么能不学习这几年这么火的Spring Boot框架,由于自己有总结的习惯,因此会把学习的过程以博客的形 ...
- Java基础练习4(内存管理)
请根据如下程序代码,画出对应的内存管理图(不需要画方法区),并写出输出结果. 1. public class Cell{ int row; int col; public Cell(int row,i ...
- 联发科MT8788基带处理器介绍
MT8788设备具有集成的蓝牙.fm.wlan和gps模块,是一个高度集成的基带平台,包括调制解调器和应用处理子系统,启用LTE/LTE-A和C2K智能设备应用程序.该芯片集成了工作在2.0GHz的A ...
- Android-----Intent中通过startActivity(Intent intent )显式启动新的Activity
Intent:即意图,一般是用来启动新的Activity,按照启动方式分为两类:显式Intent 和 隐式Intent 显示Intent就是直接以“类名称”来指定要启动哪一个Activity:Inte ...
- 使用bat脚本永久激活Windows系统
每次重装完系统后,右下角会提示系统未激活,无法进行一些个性化设置. 在这里我自己写了一个bat脚本用于激活Windows系统.(仅供学习) 文件下载: 链接:https://pan.baidu.com ...
- SQL Server使用sp_rename重命名约束注意事项
在SQL Server中,我们可以使用sp_name这个系统存储过程重命名数据库中对象的名称. 此对象可以是表. 索引. 列. 别名,约束等数据类型(具体可以参考官方文档).上周在使用这个函数重构数据 ...
- PyQt5 api 帮助文档
学习PyQt5的帮助文档是通过,使用help(PyQt5 class)的方式在console端输出帮助内容,常用的方法和属性查找起来不是很方便,现在放在网上以方便大家使用. QWidget Qt QM ...