如何防止ratingbar 星星数量的星星错位

Android—RatingBar的使用问题_百度知道
提问者采纳
看一下你的布局,是不是设置了android:isIndicator=&true&
&RatingBar
android:id=&@+id/rating&
style=&?android:attr/ratingBarStyleIndicator&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&android:isIndicator=&false&
如果这个为true,是不可以再拖动的android:numStars=&5&
最大值android:rating=&0&
初始值android:stepSize=&1& /&
步伐值请采纳
按你说的方法把问题解决了,但还是有一个疑问。下面是书上给出的XML代码,为什么这里没有加&android:isIndicator=&false& 也一样可以拖动呢?
可能会是系统版本的问题吧, android对版本的兼容做的并不完美,解决了请采纳哈
提问者评价
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求教~~RatingBar如何控制星星之间的间距啊?_百度知道
求教~~RatingBar如何控制星星之间的间距啊?
RT~~ 最近做一个评价UI在星星间距这里卡了很久,求教大神啊!!
提问者采纳
自定义ratingbar,就可以了;就是你切图的时候算下两个星星的距离,然后在中间切就可以了
查看原帖&&满意请采纳
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁从零开始学android(RatingBar评分组件.二十三.)
如果现在用户要对某个应用程序打分往往会使用图所示的组件,通过选择的“五角星”的个数来决定最终的打分成绩
这样的功能在之中,可以使用RatingBar实现,使用此组件可以方便用户的输入,而且很直观,RatingBar类的定义结构如下:
java.lang.Object
? android.view.View
? android.widget.ProgressBar
? android.widget.AbsSeekBar
? android.widget.RatingBar
RatingBar常用的方法
public RatingBar(Context context)
创建RatingBar对象
public int getNumStars()
取得评分数量
public float getRating()
取得当前值
public float getStepSize()
取得设置的步长
public boolean isIndicator()
判断是否可以操作
public void setIsIndicator(boolean isIndicator)
android:isIndicator
是否可以操作
public synchronized void setMax(int max)
设置最大值
public void setNumStars(int numStars)
android:numStars
设置评分星的个数
public void setOnRatingBarChangeListener
(RatingBar.OnRatingBarChangeListener listener)
设置操作监听
public void setRating(float rating)
android:rating
设置当前值
public void setStepSize(float stepSize)
android:stepSize
设置每次增长的步长
package com.example.
import org.w3c.dom.T
import android.os.B
import android.app.A
import android.widget.RatingB
import android.widget.RatingBar.OnRatingBarChangeL
import android.widget.TextV
public class MainActivity extends Activity {
private RatingBar ratingB
private TextView textV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ratingBar = (RatingBar) this.findViewById(R.id.ratingBar1);
textView = (TextView) this.findViewById(R.id.textView1);
设置ratingBar的监听方法
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
// TODO Auto-generated method stub
textView append显示数据
textView.append("***当前值:"+rating+"**步长:"+ratingBar.getStepSize()+"\n");
switch case 语句对评价的星星个数进行判断 给出相应的操作
switch ((int)rating) {
textView.setText("当前的用户评价:太糟了");
textView.setText("当前的用户评价:不太好");
textView.setText("当前的用户评价:不错哦");
textView.setText("当前的用户评价:很好哦");
textView.setText("当前的用户评价:太棒了");
第一种显示
Case语句判断显示效果
评分组件可以让用户和软件开发人员进行很好的反馈,对一些问题发表自己的看法
下节预报:
事件处理的几种设置方法当前访客身份:游客 [
/堆着一堆的博客没写,又出差了,哎。。。无偿奔赴着一个又一个战场。
:今天尽然跑到这里来看你的裹脚布了,反正看完时一...
:一直很牛的样子,学习ing
:引用来自“_liusl”的评论 工资的积累是为了安稳...
:工资的积累是为了安稳当下的生活。在积累的同时,...
:我有个app是iFieldBorad.apk,请问为什么在静默安...
:快找工作了,感觉自己还差很多
:引用来自“zhoulc”的评论 引用来自“冲浪的水手...
今日访问:21
昨日访问:44
本周访问:660
本月访问:65
所有访问:102189
Android自定义RatingBar(评分控件)
发表于2年前( 20:44)&&
阅读(23936)&|&评论()
0人收藏此文章,
RatingBar简单介绍
&&&&RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定,在使用默认RatingBar时,用户可以通过触摸/拖动/按键(比如遥控器)来设置评分,
RatingBar自带有两种模式 ,一个小风格 ratingBarStyleSmall,大风格为ratingBarStyleIndicator,大的只适合做指示,不适用与用户交互。
&&&&黄色星形为
自定义RatingBar
&&&&小绿色为自带的
ratingBarStyleSmall & & 大绿色为自
带的ratingBarStyleIndicator
& &通过设置&style="XXXXXXXXXXXXX"进行设置切换(比如:style="?android:attr/ratingBarStyleIndicator")
自定义RatingBar需要注意的地方
& & 一般情况下,系统自带的RatingBar是远远无法满足开发需求的,我们根据图片自定一个RatingBar,在开始实现自定义RatingBar之前,顺带说一下res目录下图片放置目录的区别:
& & 在android sdk 1.5版本之前res目录下面只有一个drawable一个目录,在android sdk 1.6版本以后就出现了三个目录,分别是drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi, &&&&(1)drawable-hdpi里面存放高分辨率的图片,如WVGA&(480x800),FWVGA&(480x854)  &&&&(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA&(320x480) &&&&(3)drawable-ldpi里面存放低分辨率的图片,如QVGA&(240x320) & & (4)drawable-xhdpi里面存放超大分辨率的图片,至少960dp x 720dp& 由于我们自定义实现的RatingBar里面使用到的星形图片分辨率比较低,所以一般情况下,我们把图片放到drawable-mdpi或者drawable-ldpi里面。
自定义RatingBar的实现过程 & &&
&&&&首先,根据图片自定一个RatingBar的背景条,和图片放到同一个目录下面(比如drawable-mdpi),room_rating_bar.xml
&?xml version="1.0" encoding="utf-8"?&
&layer-list xmlns:android="/apk/res/android"&
&item android:id="@+android:id/background"
android:drawable="@drawable/star1"&&/item& &&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&item android:id="@+android:id/secondaryProgress"
&&&&&&&&&&&&&&&&android:drawable="@drawable/star1"&&/item&
&&&&&&&&&&&&&&&&&item android:id="@+android:id/progress"
android:drawable="@drawable/star2"&&/item&
&/layer-list&
&&&&backgroud:是用来填充背景图片的,和进度条非常类似,当我们设置最高评分时(android:numStars),系统就会根据我们的设置,来画出以星星为单位的背景(假如android:numStars="5",就会画出5颗灰色的星星) &&&&progress:是用来在背景图片基础上进行填充的指示属性(和进度条类似,第一进度位置) &&&&secondaryProgress:同progress一样属于第二进度位置(如果不定义这个,进度条拖动,每次就画出一整颗星星(亮),第二进度(暗)没有覆盖掉第一进度之后的位置,从左往右是拖不出来N.5颗星星的,这样评分效果就不完整)
& & 其次,通过开始介绍,我们知道RatingBar的样式是通过style来切换的,在android中,我们可以通过在styles.xml文件中通过设置style属性,来继承我们需要自定控件类型,如下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"&16dp&/item&
&item name="android:maxHeight"&16dp&/item&
&/resources& &&&&通过
parent属性来选择继承的父类,我们这里继承RatingBar类。
&&&&重新定义
progressDrawable属性(RatingBar的背景条,和我们在首先里面介绍的那样)
maxHeight和minHeight可以根据我们图片像素或者其他参考值来设定。
&最后,在我们需要用到RatingBar的xml配置文件里面添加RatingBar控件。
& & main.xml
&RatingBar
android:id="@+id/room_ratingbar"
style="@style/roomRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="4"
android:layout_marginLeft="10dp" &
&/RatingBar&
附上源码:
更多开发者职位上
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读}

我要回帖

更多关于 ratingbar 星星数量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信