一,颜色

用过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,使用

到此还没有完成,此时图片显示是有问题的,如下

Android修改原生RatingBar颜色、大小,以及自定义的样式_第1张图片

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。

效果如下:







更多相关文章

  1. Android 显示网络图片
  2. 在控件的任意位置显示图片
  3. 使用架包实现android异步加载图片
  4. android实现自定义相机以及图片的水印
  5. android设置edittext光标的颜色
  6. Android使用BitmapFactory.Options解决加载大图片内存溢出问题
  7. Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值
  8. Android 图片选择器
  9. 用layer-list一次加载多个层次图片

随机推荐

  1. Android(安卓)ADB Commands Using Batch
  2. Android(安卓)微信界面 Fragment
  3. android图片异步加载解决步骤
  4. android.app.WallpaperManager壁纸管理类
  5. Android实现各种对话框的变体
  6. android 子线程handler 实现
  7. android截屏实现
  8. android SpannableString使用详解
  9. Android™ 2.1 android.R.drawable Icon
  10. Android(安卓)内存指标分析