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

本文详细介绍了Android中的ProgressBar组件,包括其不同风格的使用,以及如何设置和获取进度。接着讨论了SeekBar,强调了其与ProgressBar的区别,并展示了如何设置滑块、监听滑动事件。最后,解释了RatingBar的功能,如何设置星星数量、默认评级以及监听星级变化。
摘要由CSDN通过智能技术生成

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>

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值