RatingBar自定义样式
来源:互联网 发布:网络用语肥皂什么意思 编辑:程序博客网 时间:2024/06/10 03:38
RatingBar的自定义效果
首先看看效果:
有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar。
从上面的效果可以看出,自定义这样的组件,需要两张图片: 。一张用来未选择的效果,一张用来显示的效果。那还要中间那种一半是未选择一半时选择的呢?其实当你写好这样的组件后,系统就会自动帮你自动解析生成那种效果。
整个项目布局:
我们一步一步来分析:
<RatingBar
style="@style/roomRatingBar"
android:layout_marginLeft="10dip"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/room_ratingbar"></RatingBar>
从上面可看出自定义ratingbar主要是这段style="@style/roomRatingBar" ,好我们去找到这段代码
/////////styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="roomRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/room_rating_bar</item>
<item name="android:minHeight">16dip</item>
<item name="android:maxHeight">16dip</item>
</style>
</resources>
上面的意思是继承@android:style/Widget.RatingBar,重写android:progressDrawable属性,换成我们自定义@drawable/room_rating_bar文件。
控制该组件的最大和最小高度。好我们继续去找这自定义文件@drawable/room_rating_bar。
///// room_rating_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
This is the rating bar drawable that is used to show a room num.
-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background"
android:drawable="@drawable/room_unselect"></item>
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/room_unselect"></item>
<item android:id="@+android:id/progress"
android:drawable="@drawable/room_select"></item>
</layer-list>
好了,越来越接近真相了。这里就是定义组件的背景图片、一级进度背景图片和二级进度背景图片(里面这些id都是系统的id,当系统运行到这里时会自动根据这个id去重画组件)
讲到这里大概明白怎么用了。其实很多组件都可以通过这样的方法来使用,但如果明白整个过程,那以后做起其他来都至少有一点得心应手的感觉吧。好!下来我也只能说说我的见解,因为本人对android的理解也不是很深入。
前提是下载android的源码,这里我就不讲了。在android framework\base\core\res\res\values(android framework是我保存源码的目录)目录下找到styles.xml文件,该文件是android系统运行时所要加载的文件,里面保存了所有组件的样式定义。在里面你可以找到<style name="Widget.RatingBar">我们之前继承的其中一个组件样式,也有其他<style name="Widget.RatingBar.Small">、<style name="Widget.SeekBar">、<style name="Widget.ProgressBar.Small">等等。这样里面的属性我们继承后就可以被重写成其他的了。
项目:
http://files.cnblogs.com/not-code/testRatingBar.zip
- RatingBar自定义样式
- Android 自定义RatingBar样式
- 自定义样式 RatingBar
- 自定义RatingBar样式
- 自定义RatingBar样式
- 自定义RatingBar样式
- android 自定义RatingBar的样式
- radionbutton、checkbox、RatingBar自定义样式
- 自定义RatingBar显示的样式
- RatingBar简单介绍+自定义样式
- 自定义RatingBar/SeekBar,重载样式
- Android-->RatingBar自定义大小,自定义样式(图片)
- 自定义RatingBar,能根据设置改变样式
- RatingBar的基本使用和自定义样式
- RatingBar样式
- Java代码 自定义Android RatingBar 样式 【调整大小】
- 菜菜鸟-Android学习笔记01-RatingBar的自定义样式
- Android 控件之RatingBar评分条(五星)自定义样式
- DOCTYPE作用及用法详解
- 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
- 用regsvr32注册dll组件
- Tabhost的基本应用
- 界面转义符
- RatingBar自定义样式
- 删除graphic对象
- 给UITextView加边框
- 把list中的对象转换为json数据的方式
- win7 x64 安装oracle10g x64 和 PL/SQL Developer 8.02
- error C2065: 'afxChNil' : undeclared identifier
- 字符串操作
- fl2440触摸屏驱动阅读记录
- Android URI