RatingBar的自定义
2015-07-20 21:36
260 查看
RatingBar的实现其实是很简单的,只要在xml布局文件中写就行了
范例:
在主布局文件中,只需要写<RatingBar/>即可
main.xml
RatingBar的layout_height和layout_width一般都设置成wrap_content ,避免图片显示不全的问题
numStars是星星显示的个数,即评分级数
stepSize可以理解为一个评分单位,这里设置为0.1就是最小可以评0.1颗星星
rating是当前评分的星星颗数,这里设置为2.5就是当前有两个半星星被评了分
其中,在main.xml文件中的第9行,style就是自定义RatingBar的关键之处,因此,需要在res/values目录下写一个xml文件
RatingBar.xml
其中style name ="myRatingBar"里面的name "myRatingBar"要对应于main.xml文件中的style="@style/myRatingBar"
<item name="android:minHeight">44dip</item>
<item name="android:maxHeight">44dip</item>
这两个是设置RatingBar的大小的
<item name="android:progressDrawable">@drawable/rating_bar</item>
这个是设置RatingBar样式的,默认的RatingBar是星星的图片,如果想用自己的图片的话,就在res/drawable目录下写一个rating_bar.xml文件
secondaryProgress设置为没有评分时的图片
progress设置为评分之后的效果图片
系统会自动生成中间过程的效果的图片
在background里也可以设置背景效果,这里我写了一个点击RatingBar发生变化的效果
pre_unpre.xml
至此,RatingBar的自定义就写完了。
贴上效果图:(因为图片是随便找的,而且找的也是星星,很丑,勿喷)
范例:
在主布局文件中,只需要写<RatingBar/>即可
main.xml
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 tools:context="com.jorlee.ratingbar.MainActivity" > 6 7 <RatingBar 8 android:id="@+id/rating_bar" 9 style="@style/myRatingBar" 10 android:layout_height="wrap_content" 11 android:layout_width="wrap_content" 12 android:numStars="5" 13 android:stepSize="0.1" 14 android:rating="2.5"> 15 </RatingBar> 16 17 18 </RelativeLayout>
RatingBar的layout_height和layout_width一般都设置成wrap_content ,避免图片显示不全的问题
numStars是星星显示的个数,即评分级数
stepSize可以理解为一个评分单位,这里设置为0.1就是最小可以评0.1颗星星
rating是当前评分的星星颗数,这里设置为2.5就是当前有两个半星星被评了分
其中,在main.xml文件中的第9行,style就是自定义RatingBar的关键之处,因此,需要在res/values目录下写一个xml文件
RatingBar.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="myRatingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/rating_bar</item> <item name="android:minHeight">44dip</item> <item name="android:maxHeight">44dip</item> </style> </resources>
其中style name ="myRatingBar"里面的name "myRatingBar"要对应于main.xml文件中的style="@style/myRatingBar"
<item name="android:minHeight">44dip</item>
<item name="android:maxHeight">44dip</item>
这两个是设置RatingBar的大小的
<item name="android:progressDrawable">@drawable/rating_bar</item>
这个是设置RatingBar样式的,默认的RatingBar是星星的图片,如果想用自己的图片的话,就在res/drawable目录下写一个rating_bar.xml文件
<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+android:id/background" android:drawable="@drawable/pre_unpre"></item> <item android:id="@+android:id/secondaryProgress" android:drawable="@drawable/empty"> </item> <item android:id="@+android:id/progress" android:drawable="@drawable/all"> </item> </layer-list>
secondaryProgress设置为没有评分时的图片
progress设置为评分之后的效果图片
系统会自动生成中间过程的效果的图片
在background里也可以设置背景效果,这里我写了一个点击RatingBar发生变化的效果
pre_unpre.xml
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/bg710"> </item> <item android:state_pressed="false" android:drawable="@drawable/empty"></item> </selector>
至此,RatingBar的自定义就写完了。
贴上效果图:(因为图片是随便找的,而且找的也是星星,很丑,勿喷)
相关文章推荐
- 关于一点HTML的东西
- C语言各种预编译宏总结
- 查看程序符号表的几个命令
- OpenWrt配置绿联的usb转Ethernet网口驱动
- 常用的不会忘记,不常用却容易忘记的(持续更新······)
- 感想
- Gym 100712L Alternating Strings II(单调队列)
- JAVA实现二分查找
- POJ 3258 River Hopscotch
- 4 和tqy4+. ---PHP的循环总结
- 数据仓库简介
- C#软件开发实例.个人定制自己的屏幕抓图工具(八)加入了截图功能键盘
- php5.6及以上版本利用curl文件上传
- Linux基础---鸟哥Linux总结
- HDUOJ1093
- 简单地画图程序
- python百度贴吧爬虫,以及爬虫简要入门
- C语言如何操作内存和对NULL的解释
- 1619 - Feel Good(高效算法-利用数据结构优化-优先队列)
- codeforces 552 E Vanya and Brackets