ProgressBar及其子类的使用

Author Avatar
罗炜光 7月 30, 2016
  • 在其它设备中阅读本文章

ProgressBar及其子类的类图

ProgressBar

ProgressBar常用属性

XML属性 相关方法 说明
android:indeterminate setIndeterminate() 该属性设置为true,表示不精确显示进度
android:indeterminateBehavior - 当进度达到最大时,不确定模式的表现
android:indeterminateDrawable setIndeterminateDrawable() 设置当选择不精确显示进度时,所绘制的drawable对象
android:indeterminateOnly setIndeterminate() 设置只采用不精确显示进度模式
android:max setMax() 设置进度可以达到的最大值
android:progress setProgress() 设置该进度已完成的进度值
android:progressDrawable setProgressDrawable() 设置该进度条轨道对应的drawable对象
android:secondaryProgress setSecondaryProgress() 设置二级进度已完成的进度值
android:progressTint setProgressTintList() 设置进度条颜色
android:progressBackgroundTint setProgressBackgroundTintList() 设置背景的颜色
android:secondaryProgressTint setSecondaryProgressTintList() 设置二级进度条颜色
android:indeterminateTint setIndeterminateTintList() 设置不精确显示时的颜色
android:progressTintMode setProgressTintMode() 设置进度条颜色模式
android:progressBackgroundTintMode setProgressBackgroundTintMode() 设置背景的颜色模式
android:secondaryProgressTintMode setSecondaryProgressTintMode() 设置二级进度条颜色模式
android:indeterminateTintMode setIndeterminateTintMode() 设置不精确显示时的颜色模式

ProgressBar注意事项

  • android:indeterminateBehavior必须为repeat或者cycle,repeat表示进度从0重新开始;cycle表示进度保持当前值,并且回到0
  • 使用android:style设置样式
    • Widget.ProgressBar.Horizontal 水平进度条
    • Widget.ProgressBar.Small 小环形进度条
    • Widget.ProgressBar.Large 大环进度条
    • Widget.ProgressBar.Inverse 普通大小的环形进度条
    • Widget.ProgressBar.Small.Inverse 小环形进度条
    • Widget.ProgressBar.Large.Inverse 大环形进度条
  • 使用?android:attr设置样式
    • style=”?android:attr/progressBarStyle”
    • style=”?android:attr/progressBarStyleHorizontal”
    • style=”?android:attr/progressBarStyleInverse”
    • style=”?android:attr/progressBarStyleLarge”
    • style=”?android:attr/progressBarStyleLargeInverse”
    • style=”?android:attr/progressBarStyleSmall”
    • style=”?android:attr/progressBarStyleSmallInverse”
    • style=”?android:attr/progressBarStyleSmallTitle”
  • 别忘了加??表示引用主题资源
  • 要使android:indeterminateTint生效,需时控件是不精确显示状态,且需要设置android:indeterminateTintMode才能生效

ContentLoadingProgressBar

ContentLoadingProgressBar常用属性

ContentLoadingProgressBar常见方法

  • ·onAttachedToWindow()使图像显示
  • onDetachedFromWindow()使图像隐藏,但图像仍占据空间,当使用android:indeterminateDrawable设置图片时,效果是暂停
  • show()使图像显示
  • hide()使图像隐藏,图像不再占据空间

ContentLoadingProgressBar注意事项

  • ProgressBar相同
  • 使用onDetachedFromWindow()时应使用onAttachedToWindow()显示
  • 使用hide()时应使用show()显示

RatingBar

RatingBar常用属性

XML属性 相关方法 说明
android:numStars setNumStars() 显示的星型数量,必须是一个整形值
android:rating setRating() 默认的评分,必须是浮点类型
android:stepSize setStepSize() 评分的步长
android:isIndicator setIsIndicator() 是否是一个指示器,即用户是否可更改
android:progressTint setProgressTintList() 设置进度条颜色
android:progressBackgroundTint setProgressBackgroundTintList() 设置背景的颜色
android:secondaryProgressTint setSecondaryProgressTintList() 设置二级进度条颜色

RatingBar注意事项

  • android:isIndicator为true表示不可更改
  • 三种系统样式
    • style="?android:attr/ratingBarStyleIndicator" 普通
    • style="?android:attr/ratingBarStyle"
    • style="?android:attr/ratingBarStyleSmall"
  • 设置监听
    ``` java
    XXX.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener()
    {
    /*

    • @param ratingBar 当前控件
    • @param rating 当前评分
    • @param fromUser 是否是用户操作
      */
      @Override
      public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser)
      {

      }
      });

- 如何自定义图片
``` xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/unselect">
    </item>
    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/unselect">
    </item>
    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/selected">
    </item>

</layer-list>

SeekBar

SeekBar常用属性

XML属性 相关方法 说明
android:max setMax() 设置进度可以达到的最大值
android:progress setProgress() 设置该进度已完成的进度值
android:secondaryProgress setSecondaryProgress() 设置二级进度已完成的进度值
android:progressDrawable setProgressDrawable() 设置该进度条轨道对应的drawable对象
android:progressTint setProgressTintList() 设置进度条颜色
android:thumb setThumb() 设置滑块图片
android:thumbTint setThumbTintList() 设置滑块颜色
android:thumbOffset setThumbOffset() 设置滑块的偏移量
android:indeterminate setIndeterminate() 该属性设置为true,表示不精确显示进度
android:indeterminateTint setIndeterminateTintList() 设置不精确显示时的颜色

SeekBar注意事项

  • 设置监听

    XXX.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
    {
      /**
       *滑动时触发
       * @param seekBar 当前控件
       * @param progress 当前进度值
       * @param fromUser 是否用户操作
       */
      @Override
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
      {
      }
    
      /**
       * 开始滑动时触发
       * @param seekBar 当前控件
       */
      @Override
      public void onStartTrackingTouch(SeekBar seekBar)
      {
      }
    
      /**
       * 滑动结束时触发
       * @param seekBar 当前控件
       */
      @Override
      public void onStopTrackingTouch(SeekBar seekBar)
      {
      }
    });
    

参考资料

Android RatingBar自定义替换系统图片