ID #59130

Android更换RatingBar图片

      RatingBar是我们在系统显示分数的好组件,但是我们一般想把RatingBar装饰的更好看,想把更好看的图片用来替换系统默认的图片

      想要实现首先我们在styles.xml写入一个样式:

XML/HTML代码
  1. < ?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. < resources>  
  4.   
  5. < style name="foodRatingBar" parent="@android:style/Widget.RatingBar">  
  6.   
  7. < item name="android:progressDrawable">@drawable/food_ratingbar_full   
  8.   
  9. < item name="android:minHeight">48dip   
  10.   
  11. < item name="android:maxHeight">48dip   
  12.   
  13. < /style>  
  14.   
  15. < /resources>  

       然后在Drawable文件夹下建food_rating_bar_full.xml文件

XML/HTML代码
  1. < ?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. < layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
  4.   
  5. < item    
  6. android:id="@+android:id/background"  
  7. android:drawable="@drawable/food_ratingbar_full_empty" />  
  8.   
  9. < item    
  10. android:id="@+android:id/secondaryProgress"  
  11. android:drawable="@drawable/food_ratingbar_full_empty" />  
  12.   
  13. < item    
  14. android:id="@+android:id/progress"  
  15. android:drawable="@drawable/food_ratingbar_full_filled" />  
  16.   
  17. < /layer-list>  

      food_ratingbar_full_empty是代表没有选中图片效果,food_ratingbar_full_filled选中图片效果。

       最后将style放入RatingBar中,即可实现你的图片效果:

XML/HTML代码
  1.  < RatingBar android:id="@+id/my_rating_bar"  
  2.   
  3.   ...   
  4.   
  5.   style="@style/foodRatingBar" />  
  6.   
  7.   < RatingBar android:id="@+id/my_rating_bar"  
  8.   
  9.   ...   
  10.   
  11.   style="@style/foodRatingBar" />