Android修改原生RatingBar颜色、大小,以及自定义的样式
16lz
2021-01-23
一,颜色
用过RatingBar的都知道,这玩意比较坑,不好调整大小,颜色.
这里给出修改颜色的方法
style.xml中添加style
然后给RatingBar添加属性
android:theme="@style/RatingBar"
这样就实现了自定义颜色. PS:网上有另一种方法添加属性
android:progressTint="@color/orange_main_color"
这种方法其实是有问题的,会在星星的左边有阴影.细心的测试是不会放过这一点的. 二,大小
大小也不好控制,最简单的是通过系统提供的两个style来控制
?android:attr/ratingBarStyleIndicator和?android:attr/ratingBarStyleSmall但是这样也并不能达到我们想要的效果
三,自定义样式
1,准备两个图标资源
stars_bright stars_gray
2,新建drawable
<?xml version="1.0" encoding="utf-8"?>
3,定义一个style
4,使用
到此还没有完成,此时图片显示是有问题的,如下
5,解决上面的问题
//1,获取图片的高度Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.stars_bright);starsImgHeight = bmp.getHeight();//2,将获取的图片高度设置给RatingBarLinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)ratingBar.getLayoutParams();lp.width = LinearLayout.LayoutParams.WRAP_CONTENT;lp.height =starsImgHeight;ratingBar.setLayoutParams(lp);
也就是先获取图片资源的高度,然后取ratingBar的LayoutParams,对其设置高度,然后再set给ratingBar。
效果如下:
更多相关文章
- Android 显示网络图片
- 在控件的任意位置显示图片
- 使用架包实现android异步加载图片
- android实现自定义相机以及图片的水印
- android设置edittext光标的颜色
- Android使用BitmapFactory.Options解决加载大图片内存溢出问题
- Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值
- Android 图片选择器
- 用layer-list一次加载多个层次图片