展会信息港展会大全

RatingBar评分条是SeekBar拖动条子类
来源:互联网   发布日期:2015-10-03 11:15:25   浏览:1960次  

导读:RatingBar评分条是SeekBar拖动条的子类。现阶段系统自带了3种样式,我们同样用例子来演示他的使用方法和属性设置:1、main.xml的代码:?xml version=1.0Prime; encoding=utf-8Prime;?LinearLayout xmlns......

RatingBar评分条是SeekBar拖动条的子类。现阶段系统自带了3种样式,我们同样用例子来演示他的使用方法和属性设置:

1、main.xml的代码:

<?xml version= 1.0encoding= utf-8 ?>

<LinearLayout xmlns:android= http://schemas.android.com/apk/res/android

android:orientation= vertical

android:layout_width= fill_parent

android:layout_height= fill_parent

>

<RatingBar

android:id= @+id/RatingBar01

android:layout_width= wrap_content

android:rating= 3默认分值设为3

android:layout_marginTop= 20dp

android:layout_height= wrap_content >

</RatingBar>

<RatingBar

android:id= @+id/RatingBar03

android:layout_width= wrap_content

android:numStars= 5星星数量设为5

android:rating= 4默认分值设为4

android:isIndicator= false在ratingBarStyleIndicator样式中此项默认值是TRUE,会导致不可操作

style= ?android:attr/ratingBarStyleIndicator指示器(Indicator)样式

android:layout_marginTop= 20dp

android:layout_height= wrap_content >

</RatingBar>

<RatingBar

android:id= @+id/RatingBar02

android:layout_width= wrap_content

android:isIndicator= false同上

android:numStars= 10

android:rating= 8

style= ?android:attr/ratingBarStyleSmall小星星样式

android:layout_marginTop= 20dp

android:layout_height= wrap_content >

</RatingBar>

</LinearLayout>

2、在HelloRatingBar.java的代码里我们实现了3个评分条联动的功能:

package android.basic.lesson11;

import android.app.Activity;

import android.os.Bundle;

import android.widget.RatingBar;

import android.widget.RatingBar.OnRatingBarChangeListener;

public class MainHelloRatingBar extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//定义组件对象

final RatingBar rb1 = (RatingBar)findViewById(R.id.RatingBar01);

final RatingBar rb2 = (RatingBar)findViewById(R.id.RatingBar02);

final RatingBar rb3 = (RatingBar)findViewById(R.id.RatingBar03);

//定义评分监听器

OnRatingBarChangeListener orbcl= new OnRatingBarChangeListener(){

@Override

public void onRatingChanged(RatingBar ratingBar, float rating,

boolean fromUser) {

switch(ratingBar.getId()){

case R.id.RatingBar01:

//把第一个评分条的值取出来设置给其他评分条

rb2.setRating(rb1.getRating());

rb3.setRating(rb1.getRating()*2);//十颗星所以乘以2

break;

case R.id.RatingBar02:

rb1.setRating(rb2.getRating());

rb3.setRating(rb2.getRating()*2);

break;

case R.id.RatingBar03:

rb1.setRating(rb3.getRating()/2);

rb2.setRating(rb3.getRating()/2);

break;

}

}

} ;

//绑定监听器

rb1.setOnRatingBarChangeListener(orbcl);

rb2.setOnRatingBarChangeListener(orbcl);

rb3.setOnRatingBarChangeListener(orbcl);

}

}

3、运行程序,点击评分条看看效果,使用左右键再试试

有兴趣的同学可以研究一下,如何更换评分条中的图片,譬如罢星星换成花朵什么的。

赞助本站

人工智能实验室

相关热词: RatingBar 评分 SeekBar

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港