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

来源:互联网 发布:js页面大小改变事件 编辑:程序博客网 时间:2024/04/29 21:53

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

ProgressBar及其子类的继承关系图:
这里写图片描述

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);            }   }

结果:
这里写图片描述

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>

这里写图片描述

0 0
原创粉丝点击