• 一起学Android之ProgressBar


    本文简述在Android开发中进度条(ProgressBar)的常见应用,仅供学习分享使用。

    概述

    在Android开发中,进度条的使用场景有很多,如播放电影时可拖动的观看进度条,评分时使用的评分条,上传下载时的进度条,网络加载时的圆形进度条等。本文主要讲解三种进度条的常见用法:ProgressBar,SeekBar,RatingBar。

    ProgressBar常见用法

    ProgressBar涉及知识点

    1. android:max 设置进度条的最大进度
    2. android:progress 设置进度条的当前进度(如播放视频的播放进度)
    3. android:secondaryProgress 设置进度条的第二进度(如播放视频时的缓冲进度)
    4. style="?android:attr/progressBarStyleHorizontal" 设置进度条的样式(水平样式)
    5. style="?android:attr/progressBarStyleLarge" 设置进度条的样式(垂直样式),圆形进度条
    6. isIndeterminate() 判断进度条的形状,true:水平 false:圆形
    7. incrementProgressBy(10) 增加当前的进度 incrementSecondaryProgressBy(10) 增加当前的第二进度。

    ProgressBar效果图如下图所示:

    ProgressBar示例代码:

     1 <LinearLayout
     2         android:id="@+id/ll_progress"
     3         android:layout_width="match_parent"
     4         android:layout_height="wrap_content"
     5         android:layout_below="@id/ll_seeking"
     6         android:layout_marginTop="8dp"
     7         android:layout_marginRight="15dp"
     8         android:orientation="horizontal">
     9     <TextView
    10         android:id="@+id/tv_progress"
    11         android:layout_width="wrap_content"
    12         android:layout_height="wrap_content"
    13         android:text="@string/progress1"
    14         android:textSize="20dp"/>
    15     <ProgressBar
    16         android:id="@+id/pb_01"
    17         android:max="100"
    18         android:progress="30"
    19         android:layout_marginLeft="10dp"
    20         android:secondaryProgress="40"
    21         style="?android:attr/progressBarStyleHorizontal"
    22         android:layout_weight="1"
    23         android:layout_width="0dp"
    24         android:layout_height="40dp"/>
    25     </LinearLayout>
    26     <TextView
    27         android:id="@+id/tv_progress2"
    28         android:layout_width="wrap_content"
    29         android:layout_height="wrap_content"
    30         android:layout_below="@id/ll_progress"
    31         android:layout_marginTop="8dp"
    32         android:text="@string/progress2"
    33         android:textSize="20dp"/>
    34     <ProgressBar
    35         android:id="@+id/pb_02"
    36         android:layout_alignLeft="@id/rbar"
    37         android:layout_below="@id/ll_progress"
    38         style="?android:attr/progressBarStyleLarge"
    39         android:layout_width="wrap_content"
    40         android:layout_height="wrap_content"/>
    View Code

    SeekBar常见用法

    SeekBar涉及知识点

    1. android:max ,android:progress ,android:secondaryProgress此三个属性和ProgressBar相同,参考上面。
    2. setOnSeekBarChangeListener 用于设置SeekBar的监听事件,监听用户拖动的状态。
    3. OnSeekBarChangeListener表示一个接口,有三个函数需要实现:
      • onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) //进度改变
      • onStartTrackingTouch(SeekBar seekBar) //开始触摸
      • onStopTrackingTouch(SeekBar seekBar) //停止触摸

    SeekBar效果图如下图所示:

    SeekBar示例代码

     1  //监控SeekBar事件
     2         mSeekBar=(SeekBar)this.findViewById(R.id.sbar);
     3         mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
     4             @Override
     5             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
     6                 Log.i("DemoBar", "SeekBar-->setOnSeekBarChangeListener: "+String.valueOf(progress)+"-->fromUser:"+String.valueOf(fromUser));
     7                 mSeekText.setText(String.valueOf(progress));
     8             }
     9 
    10             @Override
    11             public void onStartTrackingTouch(SeekBar seekBar) {
    12 
    13             }
    14 
    15             @Override
    16             public void onStopTrackingTouch(SeekBar seekBar) {
    17 
    18             }
    19         });
    View Code

    RatingBar常见用法

    RatingBar涉及知识点

    1. android:numStars 表示星星的个数,默认为5个
    2. android:rating 表示当前的分值
    3. android:stepSize 表示步长,及前进一次多长的跨度,如,0.5表示半颗星星 1表示一颗心
    4. setOnRatingBarChangeListener 设置监听事件,
    5. OnRatingBarChangeListener 表示一个接口,只有一个函数需要实现:
      • onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser)

    RatingBar效果图如下图所示:

    RatingBar示例代码

    1  mRatingBar =(RatingBar) this.findViewById(R.id.rbar);
    2         mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
    3             @Override
    4             public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
    5                 Log.i("DemoBar", "RatingBar-->onRatingChanged: "+String.valueOf(rating)+"-->fromUser:"+String.valueOf(fromUser));
    6                 mRatingText.setText(String.valueOf(rating));
    7             }
    8         });
    View Code

    备注

    一起学习,一起总结,一起进步。附上整体演示图片

  • 相关阅读:
    idea如何使用git关联远程仓库
    项目首次上传至git仓库步骤
    Eclipse 的 Java Web 项目环境搭建
    Postman
    Postman接口测试之POST、GET请求方法
    接口测试3A原则
    使用unittest和ddt进行数据驱动
    每天进步一点点006
    每天进步一点点005
    Selenium2+python自动化1-环境搭建(悠悠课程之路)
  • 原文地址:https://www.cnblogs.com/hsiang/p/10225368.html
Copyright © 2020-2023  润新知