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

所属分类: 软件编程 / Android 阅读数: 91
收藏 0 赞 0 分享

ProgressBar有2个子控件:

SeekBar   拖动条控件

RatingBar   星级评分控件

1、拖动条控件

 <SeekBar
         android:layout_width="300dp"
         android:layout_height="wrap_content"
         android:id="@+id/seekBar"
         android:min="0"
         android:max="100"
         android:progress="50" />  <!--滑块默认位置-->

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

 <SeekBar
     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、星级评分控件

<RatingBar
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     />

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

 <RatingBar
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:id="@+id/ratingBar"
     android:isIndicator="true"  <!--是否可修改,true是不可修改,false是可修改,默认为fasle-->
     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开发之拖动条/滑动条控件、星级评分控件功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多