第三方评分控件 RatingBar的使用

原创 2017年03月29日 12:21:45
需要自定义RatingBar的样式。但是原生的RatingBar自定义很不方便,兼具无法调节,半颗星总是很难对齐,大小也不能自由调节。

通过网络搜索,发现这是原生RatingBar本身的问题,很多开发者推荐使用第三方评分控件。


一、添加依赖

dependencies {
	compile 'com.hedgehog.ratingbar:app:1.1.2'
}


二、布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!--各项属性根据字面可以理解-->
    <com.hedgehog.ratingbar.RatingBar
        android:id="@+id/rat_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        app:clickable="false"
        app:halfstart="true"
        app:starCount="5"
        app:starEmpty="@mipmap/ratingbar_star_empty"
        app:starFill="@mipmap/ratingbar_star_fill"
        app:starHalf="@mipmap/ratingbar_star_half"
        app:starImageHeight="40dp"
        app:starImagePadding="5dp"
        app:starImageWidth="40dp" />
</RelativeLayout>

三、程序代码

public class MainActivity extends AppCompatActivity {
    private RatingBar mRatingBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        mRatingBar= (RatingBar) findViewById(R.id.rat_test);
        //设置是否可点击,在需要评分的地方要设置为可点击
        mRatingBar.setmClickable(true);
        //设置星星总数
        mRatingBar.setStarCount(5);
        //设置星星的宽度
        mRatingBar.setStarImageWidth(40f);
        //设置星星的高度
        mRatingBar.setStarImageHeight(40f);
        //设置星星之间的距离
        mRatingBar.setImagePadding(5f);
        //设置空星星
        mRatingBar.setStarEmptyDrawable(getResources()
                .getDrawable(R.mipmap.ratingbar_star_empty));
        //设置填充的星星
        mRatingBar.setStarFillDrawable(getResources()
                .getDrawable(R.mipmap.ratingbar_star_fill));
        //设置半颗星
        mRatingBar.setStarHalfDrawable(getResources()
                .getDrawable(R.mipmap.ratingbar_star_half));
        //设置显示的星星个数
        mRatingBar.setStar(4.5f);
        //设置评分的监听
        mRatingBar.setOnRatingChangeListener(
                new RatingBar.OnRatingChangeListener() {
            @Override
            public void onRatingChange(float RatingCount) {
                Toast.makeText(MainActivity.this, "你给出了"+
                        (int)(RatingCount/5*100)+"分",
                        Toast.LENGTH_SHORT).show();
            }
        });
    }
}

运行效果:



这个控件的确比原生的RatingBar要好得多,使用起来也很方便。效果不错。星星图标不用留空,可以自由调整大小和间距,半颗星自然对齐。
版权声明:本文为博主原创文章,未经博主允许不得转载。

android 评论五角星 RatingBar

Android Studio: dependencies { compile 'com.hedgehog.ratingbar:app:1.1.2' } 布局: 头部...

RatingBar的使用方法详解

RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定。使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用rating...

安卓RatingBar的使用(评分控件)

安卓RatingBar的使用(评分控件)
  • Jeff169
  • Jeff169
  • 2016年08月21日 11:05
  • 4741

Android自定义控件简单实现ratingbar效果

先上图: 一开始让我自定义控件我是拒绝的,因为android很早以前就有一个控件ratingbar,但是设置样式的时候我发现把图片设置小一点就显示不全,一直找不到解办法!(可以设置系统的自带的小...

Android中单选框选中改变图片的示例

点击单选框,进而改变图片 知识点:常用控件RadioGroup、RadioButton、ImageView、Map集合 实现思路: 第一步:设置一个ImageView 第二步:用一个R...

android自定义view之自定义RatingBar

问题描述: 很多时候我们会遇到写自定义评分条,也就是自定义RatingBar的需求,下面写一个比较复杂的自定义view 解决方案: 先上图 明显第一个和第二个都是自定义view,只是写法不一...

安卓RatingBar的使用(评分控件)

  • 2016年08月21日 10:25
  • 1001KB
  • 下载

Android自定义星星评分控件代替RatingBar的使用

大家做android的就知道android自带的控件很丑,所以很多控件都需要自定义,例如这里说道的RatingBar控件,自带的奇丑无比,那么下面看看怎么利用自定义控件代替RatingBar控件吧,直...

高级控件之星际评分条(RatingBar)的使用

星级评分条志拖动条类似,都允许用户拖动来改变进度,所不同的是,星级评分条通过星星显示进度.通常情况下.使用星级评分条表示对某一事务的支持度或是对某种服务的满意程度,如淘宝网中对卖家的好评度....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第三方评分控件 RatingBar的使用
举报原因:
原因补充:

(最多只允许输入30个字)