进度条,拖动条,星级评分条

进度条ProgressBar的功能和用法

  • ProgressBar概述
    进度条是UI界面中的一种非常实用的组件,通常向用户显示某个耗时操作完成的百分比。因此进度条可以动态地显示进度,避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应,从而更好地提高用户界面的友好性
  • Android支持几种风格的进度条,通过style属性可以为ProgressBar指定风格,该属性支持如下几个属性值。
    1.style=“?android:attr/progressBarStyle” 圆形进度条
    2.style=“?android:attr/progressBarStyleHorizontal” 水平进度条
    3.style=“?android:attr/progressBarStyleInverse” 圆形普通大小进度条
    4.style=“?android:attr/progressBarStyleLarge” 圆形大进度条
    5.style=“?android:attr/progressBarStyleLargeInverse” 圆形大进度条
    6.style=“?android:attr/progressBarStyleSmall” 小圆形进度条
    7.style=“?android:attr/progressBarStyleSmallInverse” 普通大圆形小进度条
    8.style=“?android:attr/progressBarStyleSmallTitle” 带标题的圆形小进度条
  • ProgressBar支持如下表的.xml属性
    1.android:max:设置该进度条的最大值
    2.android:progress设置该进度条的已完成进度值
    3. android:indeterminate该属性设置为true, 设置进度条不精确显示进度
    4.android:indeterminateDrawable设置绘制不显示进度的Drawable对象
  • ProgressBar的重要方法
    1.getMax():返回这个进度条的范围的上限
    2.getProgress():返回进度值 setProgress():
    getSecondaryProgress():返回次要进度值 setSecondaryProgress():
    incrementProgressBy(int diff):指定增加的进度,正数为增加进度,负数为减去进度
    isIndeterminate():判断进度条是否在不精确显示进度模式下
    setIndeterminate(boolean indeterminate):设置进度条不精确显示模式
    setVisibility(int v):设置该进度条是否可视

ProgressBar代码

//在开发时,当需要下载或上传文件时,需要让用户知道当前的进度,就需要使用进度条
//xml中使用
<ProgressBar android:id="@+id/pb_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="20"
android:secondaryProgress="50"
style="@android:style/Widget.ProgressBar.Horizontal"
android:max="100"/>
//减少或增加进度,值为整数就是增加,负数就是减少
pb_show.incrementProgressBy(-5);//第一进度
pb_show.incrementSecondaryProgressBy(-3);//第二进度

水平进度条.jpg
标题圆形进度条.jpg
大号圆形进度条.jpg
小号圆形进度条.jpg

拖动条SeekBar的功能和用法

拖动条概述

  • 拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值----而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等。
  • SeekBar的主要应用在音乐播放,视频播放,或者对音量调节,屏幕亮度调节的一些操作中,让用户可以手动的去改变相应的值。


    seekbar的重要属性和方法.jpg

SeekBar代码

//在开发过程中,音量及音视频播放的时候,
//需要快速定位到某个地方,这时候可以使用拖动条来实现
//xml中定义拖动条来使用
<SeekBar
android:id="@+id/sb_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255" //最大进度,是音视频的最大时长
android:progress="50" //当前定位到的播放位置/>
//拖动SeekBar,进行监听,调整当前位置
//为seekBar设置监听事件
sb_id.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
//停止拖动
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.e("--Main--", "--------停止拖动-------");
}
//开始拖动
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.e("--Main--", "--------开始拖动-------");
}
//拖动中
@Override
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
Log.e("--Main--", "--------拖动中:progress="+progress);
iv_head.setAlpha(progress);//修改图片的透明度
tv_show.setText(String.valueOf(progress));//修改文本显示的内容
}
});

星级评分条RatingBar 的功能和用法

  • RatingBar概述
    星级评分条与拖动条十分相似,它们甚至有相同的父类:AbsSeekBar。实际上星级评分条与拖动条的用法、功能都十分接近:它们都允许用户通过拖动来改变进度。RatingBar与SeekBar最大区别在于: RatingBar通过星星来表示进度。
  • 常见 xml属性:
    android:isIndicator:设置该星级评分条是否允许用户改变(true为不允许)
    android:numStarts:设置该星级评分条总共有多少个星级
    android:rating:设置该星级评分条默认的星级
    android:stepSize:设置每次最少需要改变多少个星级
    --RatingBar 实现方法
<RatingBar 
android:id="@+id/room_ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" 
android:numStars="5“
 android:rating="4" 
android:layout_marginLeft="10dp" > 
</RatingBar>
  • 设置监听
bar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
             
            @Override
            public void onRatingChanged(RatingBar arg0, float arg1, boolean arg2) {
                Toast.makeText(MainActivity.this,"" + arg1*20, Toast.LENGTH_SHORT).show();
            }
        });
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容