Android UI控件学习(二)——星级评分条

开篇自述

星级评分条与拖动条类似,都允许用户拖动来改变进度,所不同的是,星级评分条通过星星图案表示进度。通常情况下,使用星级评分条表示对某一事物的支持度或某种服务的满意程度等。
因为我上一篇拖动条已经详细介绍过了,这里就简单写了,如果有不懂的,可以先去看一下我上一篇拖动条的那篇文章。

正文——星级评价条

好了,话不多说,我觉得还是直接上例子比较直接。

实例

一样,贴上我的GitHub地址,有兴趣的朋友可以去下载,点这里

项目结构

这里就简单一点,Java文件
在这里插入图片描述
layout布局文件
在这里插入图片描述

具体代码参考

MainActivity主要代码

	/**
     * 处理监听事件
     */
    class onClickBtn implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
               	……
                case R.id.btn_rating_bar:
                    openAct(RatingBarActivity.class);//跳转到星级评分条页面
                    break;
            }
        }
    }

上一篇里面有介绍openAct()方法,在此就不做介绍了。

然后,在layout文件夹里创建一个activity_rating_bar.xml文件,代码如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RatingBar
        android:id="@+id/ratingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5"
        android:rating="3.5"
        android:isIndicator="false"
        android:stepSize="0.5"
        android:layout_margin="20dp"/>
    <Button
        android:id="@+id/ratingBar_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:text="@string/btn_submit"/>
    <TextView
        android:id="@+id/ratingBar_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="当前分数:3.5"
        android:padding="20dp"/>

</LinearLayout>

这里列一下RatingBar支持的XML属性

XML属性描述
android:isIndicator用于指定该星级评分条是否允许用户改变,true为不允许改变
android:numStars用于指定该星级评分条总共有多少个星
android:rating用于指定该星级评分条默认的星级
android:stepSize用于指定每次最少需要改变多少个星级,默认为0.5个

然后,接下来就是创建java文件了,RatingBarActivity主要代码如下

public class RatingBarActivity extends Activity {

    private RatingBar ratingBar;
    private Button submitBtn;
    private TextView ratingBarText;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rating_bar);
        init();
    }

    private void init(){
        ratingBar = (RatingBar) findViewById(R.id.ratingBar);
        submitBtn = (Button) findViewById(R.id.ratingBar_btn);
        ratingBarText = (TextView) findViewById(R.id.ratingBar_tv);
        // 给按钮添加监听
        submitBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int result = ratingBar.getProgress();//获取进度
                float rating = ratingBar.getRating();//获取等级
                float step = ratingBar.getStepSize();//获取每次要改变多少个星级
                ratingBarText.setText("当前分数:"+rating+"\n进度:"+result+"\n等级:"+rating+"\n每次改变:"+step+"个星级");
            }
        });
    }
}

这里用到三个方法

方法名描述
getRating()用于获取等级,表示选中了几颗星
getStepSize()用于获取每次最少要改变多少个星级
getProgress()用于获取进度,进度值为getRating()返回值与getStepSize()返回值之商

到此,主要代码就基本完成了,接下来让我们把新建的activity加到AndroidManifest.xml中

		<activity android:name=".RatingBarActivity"/>

这里再贴上string.xml文件中用到的常量

    <string name="btn_rating_bar">星级评分条</string>
    <string name="btn_submit">提交</string>

好了,大功告成。

运行效果

现在,让我们来看一下运行效果怎么样,
首先是刚进来的页面
在这里插入图片描述
现在,让我们滑动改变一下看看,当我们改变之后,然后点击提交,可以看到下面会给出消息信息。
在这里插入图片描述

结语

到这里,我们的程序就结束了,你也成功了吗,你也可以试着添加一些其他功能,比如单击完提交,用户就不可以再对星级进行修改,等等。

马上过年了,好开心,也祝大家春节快乐,今天回家,嘻嘻……^ U ^……开森,今年的最后一篇博客,也希望明年能变得更好,变得更厉害,早日成为一个大神,你们也是哦,一起加油。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值