Android UI设计 评分控件RatingBar用法

来源:互联网 发布:mac如何打开zip文件 编辑:程序博客网 时间:2024/04/28 12:30

如果大家去market下软件,在下载完的软件那,每个软件都会有5个五角星让你评分,其实这个就是RatingBar,RatingBar可以方便的让用户帮助你打分。
下面是效果图:

界面上就一个TextView,一个RatingBar,当用户执行评分操作时,TextView上会显示当前用户评分。
下面我们来实现。先是布局xml:

1234567891011121314151617181920
<?xml version="1.0" encoding="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"    ><TextView  android:id="@+id/tv"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text=""    /><RatingBar android:id="@+id/rb"android:layout_width="wrap_content"android:layout_height="fill_parent"android:numStars="3"android:rating="1"/><!--这里要注意了,layout_width必须是wrap_content,如果设成fill_parent,不管你在后面把满分设为几颗星,它都会把屏幕横向显示满为止--></LinearLayout>

其中,以下两句第一句是用来定义总分,第二句是默认评分,其实这两句在这个程序中没用的,因为等会我们在程序代码中要重定义,这里写上只不过是演示用法。

12
android:numStars="3"android:rating="1"

下面是程序代码:

12345678910111213141516171819202122232425262728293031323334
package com.pocketdigi; import android.app.Activity;import android.os.Bundle;import android.widget.RatingBar;import android.widget.TextView;import android.widget.RatingBar.OnRatingBarChangeListener; public class main extends Activity {    /** Called when the activity is first created. */RatingBar rb;TextView tv;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        tv=(TextView)findViewById(R.id.tv);        rb=(RatingBar)findViewById(R.id.rb);        rb.setNumStars(5);        rb.setRating(3);           rb.setOnRatingBarChangeListener(rbLis);        //定义一个监听器    }    private OnRatingBarChangeListener rbLis=new OnRatingBarChangeListener(){ @Overridepublic void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {tv.setText(String.valueOf(rb.getRating()));//输出评分}     };}
原创粉丝点击