android五星平分控件,Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码...

ProgressBar有2个子控件:

SeekBar   拖动条控件

RatingBar   星级评分控件

1、拖动条控件

54a7e579370f8520386e7300b283729a.png

android:layout_width="300dp"

android:layout_height="wrap_content"

android:id="@+id/seekBar"

android:min="0"

android:max="100"

android:progress="50" />

也可以使用自定义的滑块:

90556720557b61d1b62adf3102771459.png

android:layout_width="300dp"

android:layout_height="100dp"

android:id="@+id/seekBar"

android:thumb="@drawable/a"

android:min="0"

android:max="100"

android:progress="50" />

说明:

并不会自动显示对应的刻度值。

滑块可以滑动,但没有事件响应。需要我们在.java文件中添加事件监听:

SeekBar mySeekBar=findViewById(R.id.seekBar);

mySeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

/*

三个形参:

SeekBar seekBar 触发此事件/监听的Seekbar

int progress 当前刻度值。

boolean fromUser 是否为用户拖动产生的响应,这个不常用

虽然setText(int x)可以设置int型的值,但这个int指的是 R.string.app_name 这样的常量值,不是整型数字。不能setText(progress)这样用,要先转换为String。

*/

//滑动滑块时触发

@Override

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

//判断改变的是否是指定的滑动条。预防当前Activity对应的xml布局中有多个滑动条,如果只有一个滑动条,则不必判断

if (seekBar.getId()==R.id.seekBar){

}

}

//滑动开始时触发

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

if (seekBar.getId()==R.id.seekBar){

}

}

//滑动停止时触发

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

if (seekBar.getId()==R.id.seekBar){

}

}

});

}

滑动滑块一次触发的事件:

最先开始时触发   onStartTrackingTouch(),滑动过程中一直触发   onProgressChanged(),最后停止时触发   onStopTrackingTouch()。

就是说滑动过程中会不停地触发  onProgressChanged()  。

2、星级评分控件

7694117bd389ebaaa8e24f2e7ffb0904.png

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

总共默认5颗星,初始默认选择0颗星,默认可修改,默认步长为0.5,即可以点亮半颗星。也可手动设置:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/ratingBar"

android:isIndicator="true"

android:numStars="7"

android:rating="5"

android:stepSize="1" />

有时候只是向用户展示评分,并不需要用户评分,比如排行旁的xx指数,这时就需要设置   android:isIndicator="true"    不可修改。

默认为false,可修改。

在.java文件中获取已点亮的星数:

RatingBar ratingBar=findViewById(R.id.ratingBar);

//获取已点的星数,因为步长可以为小数,所以获取到的是float

float rates=ratingBar.getRating();

在Android中,几乎所有控件都提供了setXxx()、getXxx()方法供我们在.java文件中操作控件的属性。

总结

以上所述是小编给大家介绍的Android开发之拖动条/滑动条控件、星级评分控件功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

时间: 2019-05-20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值