`
xindrace
  • 浏览: 96638 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

分享到:
评论

相关推荐

    Android自定义Ratingbar星星实现评分

    在Android开发中, RatingBar 是一个...在"Android自定义Ratingbar星星实现评分"这个例子中,开发者提供了宝贵的实践经验和代码参考,对于希望深入理解Android自定义视图机制的开发者来说,这是一个极好的学习资源。

    android中自定义ratingbar方法(含代码)

    Android 中自定义 RatingBar 方法 在 Android 开发中,RatingBar 是一个非常常用的组件,用于显示评分或星级評價。但是,系统默认的 RatingBar 样式可能不够美观,于是我们需要自定义 RatingBar 的样式来满足我们的...

    ratingbar 自定义星星效果

    ratingbar 自定义星星效果 &lt;layer-list xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;item android:id="@+android:id/background" android:drawable="@drawable/xixi0" /&gt; &lt;item android:id=...

    Android中自定义RatingBar实现星星大小,数量,间距等的设置

    系统中自带的RatingBar使用起来非常不方便,并且无法调整合适大小,于是自定义一个可自己调节星星数量,大小,间距等属性的RatingBar,详细了解请移步http://blog.csdn.net/zxc514257857/article/details/68670712

    Android自定义RatingBar的背景图片

    默认情况下,RatingBar的样式和颜色可能无法满足所有设计需求,因此开发者常常需要对其进行自定义,以达到更个性化的视觉效果。本文将详细介绍如何自定义RatingBar的背景图片以及解决在Android 6.0(API级别23)设备...

    android自定义RatingBar显示效果

    android自定义RatingBar显示效果

    android自定义RatingBar

    - 在XML布局文件中,通过`app:`(如果使用自定义属性)或`android:`(如果仅使用Android框架的属性)前缀引用自定义RatingBar的属性。 - 或者在Java代码中,通过`setCompoundDrawablesWithIntrinsicBounds()`方法...

    自定义RatingBar

    总之,自定义RatingBar是Android开发中的一个重要技巧,它允许开发者创造出具有独特设计和交互体验的评分组件。通过理解RatingBar的基础知识并熟练掌握自定义View的原理,你可以为应用增添更多个性化的元素,提升...

    android 自定义RatingBar源码实例

    在Android开发中,RatingBar是一种常用的UI组件,它允许用户以星星的形式给出评分。系统默认的RatingBar样式可能无法满足所有设计需求,因此开发者经常需要对其进行自定义以达到更美观的效果。本文将深入探讨如何...

    Android控件之RatingBar自定义星级评分样式

    一、RatingBar简单介绍 RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星...效果图展示: 二、实例 1.布局文件 &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;LinearLayout xmlns:android=http

    android 评分条 RatingBar 使用及自定义

    对于自定义的行为,例如触摸拖动时的动画效果,RatingBar可能无法直接满足。这时,我们需要自定义一个继承自RatingBar的类,并重写其onTouchEvent()方法,实现自定义的触摸响应逻辑。同时,如果需要更精细的控制,如...

    Android安卓自定义RatingBar控件(解决了多分辨率问题,以及被截取或者有阴影的问题)

    为解决此问题,可以在自定义RatingBar的XML布局中设置`android:layout_width`和`android:layout_height`为`wrap_content`,并使用`android:scaleType="fitStart"`或`android:scaleType="fitEnd"`来控制星星的排列...

    Android重写View的自定义Ratingbar

    由于项目中需要使用到ratingbar,可之前每次使用总有各种各样的限制 使用过的小伙伴可能会有所体会,这次需要设置ratingbar之间的间距,我试了很多种方法都无效 迫于无奈,只能自己写一个呗 现在分享出来给小伙伴们...

    android自定义评分控件ratingbar

    本篇文章将深入探讨如何在Android中自定义RatingBar,包括改变其样式、背景图、间距、大小以及分数等属性。 首先,创建自定义RatingBar通常涉及到以下几个步骤: 1. **创建自定义View类**:你需要创建一个新的Java...

    RatingBar自定义样式

    在Android开发中,RatingBar是一种常用的UI组件,用于显示评分或...总的来说,自定义RatingBar是Android开发中提升用户体验的重要手段,开发者可以根据项目需求灵活运用这些技术,创造出独特且富有个性化的评分组件。

    Android 自定义RatingBar

    本文将深入探讨如何在Android中自定义RatingBar,包括其样式、颜色、数量以及动态交互等方面。 首先,我们需要了解RatingBar的基本结构。RatingBar通常由一系列的ImageView组成,每个ImageView代表一个星星。在...

    Android RatingBar投票条实例

    在Android开发中,RatingBar是一种常用的视图组件,它用于显示用户评价或评分,通常用于电影、产品或服务的评价场景。本实例将深入探讨如何在Android应用中创建和使用RatingBar,适合初级到高级的Android开发者学习...

    android 利用RatingBar实现登录加载进度条

    在Android开发中, RatingBar通常用于用户评价,它呈现为一系列可选的星星。然而,这里我们将探讨如何创造性地利用RatingBar来实现一个登录时的加载进度条效果。这个概念可以提升用户体验,使得用户在等待登录验证时...

Global site tag (gtag.js) - Google Analytics