第三方评分控件 RatingBar的使用

需要自定义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要好得多,使用起来也很方便。效果不错。星星图标不用留空,可以自由调整大小和间距,半颗星自然对齐。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值