本篇基于Android系统默认的RatingBar进行美化

1.先上个效果图



2.配置文件中的代码:

<RatingBar

android:id="@+id/room_ratingbar"

style="@style/roomRatingBar"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="10dip">

</RatingBar>

自定义ratingbar主要是这段style="@style/roomRatingBar"

3.编写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>

注解:第一句 parent="@android:style/Widget.RatingBar" 是继承系统的RatingBar的样式

第二句重写android:progressDrawable属性,换成我们自定义@drawable/room_rating_bar文件。

第三、四句 控制该组件的最大和最小高度

4.room_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/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 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">等等。这样里面的属性我们继承后就可以被重写成其他的了。

更多相关文章

  1. Android四大组件之~~Service
  2. Android七大布局
  3. Android之SimpleAdapter简单实例和SimpleAdapter参数说明(zt)
  4. Android(安卓)NavigationView 中 menu item 字体大小设置
  5. Android(安卓)自定义view(二) 如何实现自定义组件
  6. Android应用程序的构成
  7. android 开发常用框架、组件 -UI篇
  8. 关于Android中的radioGroup选择
  9. 学习Android从0开始之基础篇(1)-Android的四大基本组件

随机推荐

  1. 修改android Launcher
  2. 【Android】Android常见的错误及解决
  3. android 传统蓝牙开发 (附示例源码)
  4. Android SDK源码提取Python脚本(4.0SDK源
  5. Cocos2dx 2.0.2版本Android环境出错:Canno
  6. Android问题集锦之四十:Android(安卓)NDK:
  7. Android 实现滚动数字的TextView
  8. android intent 最大传送内容 1m
  9. 关于ANDROID NATIVE 的No implementation
  10. 获取Android状态栏的高度