第4组UI-ProgressBar及子类之ProgressBar(进度条)、SeekBar(拖动条)和RatingBar(星级评分条)

    • ProgressBar
      • 概述
      • xml属性
      • 详细介绍
    • SeekBar拖动条
      • 概述
      • xml属性
      • 监听器
      • 范例
    • RatingBar星级评分条
      • 概述
      • xml属性
      • 监听事件
      • 范例

ProgressBar及其子类的继承关系图:
第4组UI-ProgressBar及子类之ProgressBar(进度条)、SeekBar(拖动条)和RatingBar(星级评分条)_第1张图片

ProgressBar

1.概述:

用于向用户显示某个耗时操作完成的百分比。

2.xml属性:

1)各种风格的进度条,通过style属性,支持下列属性值:
@android:style/Widget.ProgressBar.Horizontal:水平进度条
@android:style/Widget.ProgressBar.Inverse普通大小环形进度条
@android:style/Widget.ProgressBar.Large:大环形进度条
@android:style/Widget.ProgressBar.Large.Inverse:大环形进度条
@android:style/Widget.ProgressBar.Small:大环形进度条
@android:style/Widget.ProgressBar.Small.Inverse:大环形进度条

3.详细介绍

1.进度条:默认是圆形

    <ProgressBar android:id="@+id/progressBar" android:layout_width="match_parent" android:layout_height="wrap_content" />

2.水平进度条:
1)xml:

//改变style变成进度条,可以用max设置总长度。
<ProgressBar 
        android:id="@+id/progressBar_hor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"/>

2)代码:
getProgress()得到进度位置
setProgress()设置进度位置

public void onClick(View arg0) {
    int progress = btnBarHori.getProgress();
    if(progress<100){
        progress = progress+20;
        btnBarHori.setProgress(progress);

        }else{
            progress =0;
            btnBarHori.setProgress(progress);
            }   
}

结果:
第4组UI-ProgressBar及子类之ProgressBar(进度条)、SeekBar(拖动条)和RatingBar(星级评分条)_第2张图片

3.改变可见性:
1>xml控制可见性:任何组件都有可见属性:android:visibility ,指定值为visible(可见),invisible(不可见但仍占据位置)和gone(不可见且不占据屏幕空间)
2>代码控制:
setVisibility()方法,传入参数为View.VISIBLE,View.INVISIBLE,View.GONE
getVisibility()可以判断可见性。

SeekBar(拖动条)

1.概述:

拖动条和进度条相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条通过滑块的位置来标识数值。
所以拖动条通常用于对系统的某种数值进行调节,比如调节音量。

2.xml属性:

thumb=”” //指定一个Drawable对象,该对象作为自定义滑块。

3.监听器:

为了让程序能响应拖动条滑块位置的改变,程序可以考虑为它绑定一个OnSeekBarChangeListener监听器。

4.范例:

功能:seekBar动态改变图片透明度。

 <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/sunli" />
 <SeekBar android:id="@+id/seekBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="255" android:progress="255" android:thumb="@drawable/ic_launcher"/>
public class MainActivity extends Activity {
    private ImageView mImageView;
    private SeekBar mSeekBar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mImageView =(ImageView) findViewById(R.id.imageView);
        mSeekBar =(SeekBar) findViewById(R.id.seekBar);
        mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onStartTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
                mImageView.setAlpha(arg1);//由于将seekbar数值设为了255,所以直接带入即可,数值越大,越亮

            }
        });

    }

}

RatingBar(星级评分条)

1.概述:

RatingBar和SeekBar有相同的父类AbsSeekBar,区别在于RatingBar通过星星来表示进度。

2.xml属性:

isIndicator=”” //设置该星级评分条是否允许用户改变(true为不允许改变)
numStars=:”” //设置评分条共有多少星级
rating=”” //设置默认的星级
stepSize=”” //设置每次最少需要改变多少个星级。

3.监听事件

为了让程序能响应星级评分条的改变,程序为它绑定一个OnRatingBarChangeLister监听器。

4.范例:

<RatingBar android:id="@+id/ratingBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:max="255" android:numStars="5" android:rating="2" android:stepSize="0.5" android:layout_below="@id/imageView" >
</RatingBar>

第4组UI-ProgressBar及子类之ProgressBar(进度条)、SeekBar(拖动条)和RatingBar(星级评分条)_第3张图片

你可能感兴趣的:(第4组UI-ProgressBar及子类之ProgressBar(进度条)、SeekBar(拖动条)和RatingBar(星级评分条))