Android 自学之星级评分条RatingBar

星级评分条(RatingBar)与拖动条十分相似,他们还有共同的父类AbsSeekBar。实际上星级评分条和拖动条的用法和功能都十分的接近:他们都允许用户通过拖动来改变进度。RatingBar与SeekBar的最大区别在于:RatingBar是通过星星来表示进度。

为了让程序能响应星级评分条评分的改变,程序可以考虑为它绑定一个OnRatingBarChangeListener监听器。

星级评分条支持的常见的XML属性。



















XMl属性 说明
android:isIndicator 设置该星级评分条是否允许用户改变(true为不允许改变)
android:numstars 设置该星级评分条总共有多少个星级
android:rating 设置该星级评分条默认的星级
android:stepSize 设置每次最少需要改变多少个星级

实例:通过星级改变图片的透明度

layout/main.xml


 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:orientation="vertical"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent">
6
7 <ImageView
8 android:id="@+id/image"
9 android:layout_width="fill_parent"
10 android:layout_height="240px"
11 android:src="@drawable/lijiang"
12 />
13
14 <!-- 定义一个星级评分条 -->
15 <RatingBar
16 android:id="@+id/rating"
17 android:layout_width="wrap_content"
18 android:layout_height="wrap_content"
19 android:numStars="5"
20 android:max="255"
21 android:progress="255"
22 android:stepSize="0.5"
23 />
24
25
26 </LinearLayout>

主程序:com.example.ratingbar.RatingBarTest.xml


 1 package com.example.ratingbar;
2
3 import android.support.v7.app.ActionBarActivity;
4 import android.support.v7.app.ActionBar;
5 import android.support.v4.app.Fragment;
6 import android.os.Bundle;
7 import android.view.LayoutInflater;
8 import android.view.Menu;
9 import android.view.MenuItem;
10 import android.view.View;
11 import android.view.ViewGroup;
12 import android.widget.ImageView;
13 import android.widget.RatingBar;
14 import android.widget.RatingBar.OnRatingBarChangeListener;
15 import android.os.Build;
16
17 public class RatingBarTest extends ActionBarActivity {
18
19 @Override
20 protected void onCreate(Bundle savedInstanceState) {
21 super.onCreate(savedInstanceState);
22 setContentView(R.layout.main);
23
24 final ImageView image = (ImageView) findViewById(R.id.image);
25 RatingBar ratingBar = (RatingBar) findViewById(R.id.rating);
26
27 ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
28
29 @Override
30 public void onRatingChanged(RatingBar ratingBar, float rating,
31 boolean fromUser) {
32 //动态改变图片的透明度,其中255是星级评分条的最大值
33 //5个星星就代表最大值255
34 image.setAlpha((int)(rating * 255 / 5));
35 }
36 });
37 }
38
39 }

运行效果5颗星:

运行效果3颗星:

时间: 2024-10-12 04:31:14

Android 自学之星级评分条RatingBar的相关文章

更改星级评分条 RatingBar 的样式

1.首先在布局中引用星级评分条: <RatingBar            android:id="@+id/room_ratingbar"            style="@style/roomRatingBar"            android:layout_width="wrap_content"            android:layout_height="fill_parent" />

Android 学习笔记(6)—— SeekBar(进度条)/RatingBar(星级评分条)

作者:夏至  欢迎转载,也请保留这段申明,谢谢 1.SeekBar(进度条) SeekBar即所谓的进度条啦,大家应该对它都不陌生,我们的音乐播放器中的音量调节和视频播放时的进度条都是用它来显示的,这里我们简单的应用这个Demo实现上诉的内容.先来看个效果图和API中的关系图 可以看到第二个继承关系图中,seekbar是属于progressbar的子类,那我们上一节progressbar中的属性,这里都是可以调用的. Ok,这里我们先来写布局程序 <TextView     android:id

Android基础入门教程——2.3.9 RatingBar(星级评分条)

Android基础入门教程--2.3.9 RatingBar(星级评分条) 标签(空格分隔): Android基础入门教程 本节引言: 上一节的SeekBar是不是很轻松咧,本节我们学的这个RatingBar(星级评分条)也非常简单,相信在某宝, 买过东西的对这个应该不陌生,收到卖家的包裹,里面很多时候会有个小纸片,五星好评返还多少元这样, 而评分的时候就可以用到我们这个星级评分条了~先来瞅瞅官方文档 官方文档:RatingBar 我们可以看到,这玩意和SeekBar的类结构是一样的,也是Pro

RatingBar(星级评分条)

本节引言: 上一节的SeekBar是不是很轻松咧,本节我们学的这个RatingBar(星级评分条)也非常简单,相信在某宝, 买过东西的对这个应该不陌生,收到卖家的包裹,里面很多时候会有个小纸片,五星好评返还多少元这样, 而评分的时候就可以用到我们这个星级评分条了~先来瞅瞅官方文档 官方文档:RatingBar 我们可以看到,这玩意和SeekBar的类结构是一样的,也是ProgressBar的子类: 也就是说他同样有用ProgressBar的相关属性,接下来我们来探究RatingBar特有的属性!

android评分条RatingBar自定义设置

RatingBar为评分条控件,默认效果为若干个绿色的星星,如果想将其换成其他自定义图片就要自定义它的style.首先是布局文件: 1 <RatingBar android:id="@+id/app_ratingbar" style="@style/MyRatingBar" 2 android:layout_marginTop="4dip" android:layout_width="wrap_content" 3 an

2.4.6 星级评分条

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layoutMain" android:layout_width="match_parent" android:layout_height="

53.星级评分条

[实际效果图] 1.相关资源: /** * 自定义View的几个重要方法步骤: * 1.构造方法 创建 对象:据使用的那种方式调用那种方法 * 2.获取View的大小 :onMeasure(int,int) * 3.确定View的位置,view自身有一定的权力,但是决定权在父布局上 : onLayout(); * 4.绘制View的内容:onDraw(Canvas) *///自定义控件---星级评分条(只用于显示,不可拖动)public class MyRatingBar extends Vie

【Android自学日记】关于Bitmap的理解和使用-不完整版

最近的Android自学刚好学习到异步线程的使用,对于开启异步线程加载网络图片中用到的Bitmap有点小蒙逼,这到底是个啥???所以我就自信的打开了百度!!以下就是我学习到的知识! 百度定义: 位图文件(Bitmap),扩展名可以是.bmp或者.dib.位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2.4.8.16.24和32位色彩.例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/(8*1024)

Android 自学之拖动条SeekBar

拖动条(SeekBar)和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值----而且拖动条允许用户拖动滑动块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如音量调节. SeekBar允许用户改变拖动条的滑块外观,改变滑块外观通过如下属性来指定 android:thumb  指定一个Drawable对象,该对象将作为自定义滑块. 为了让程序能响应拖动条滑块位置的改变,程序可以考虑为他绑定一个OnSeekBarChangerListener监