Android美团评分组件及消息提示框自我定制(14)

评分组件也疯狂

 

美团完,淘宝完,消费完,那些各种评分组件是不是让你也疯狂呢,那么,现在我们自己来做一个评分组件,小星星登场。

RatingBar 这里我们定义两个五角星评分组件,以便显示我们定义与系统默认的区别。

首先布局文档:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RatingBar
            android:id="@+id/ratingBar1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:textSize="50px"
            android:layout_height="fill_parent" />

    </TableRow>

    <RatingBar
        android:id="@+id/ratingBar2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="4"//星星的数目为4颗
        android:rating="3" />//评分为三颗星

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="评分完成
        " />

</TableLayout>

 
Android美团评分组件及消息提示框自我定制(14)
 

这里我们用TableRow布局,而且这一节课我们会讲到Toast信息提示框的使用,就是我们经常在手机点了什么,下面出现的一个信息框,然后一会又隐去的那个。MainActivity.java文件代码:

rivate RatingBar rating=null;
	private TextView text=null;
	private Button bt;
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.rating=(RatingBar)super.findViewById(R.id.ratingBar1);
		this.text=(TextView)super.findViewById(R.id.textView1);
		this.rating.setOnRatingBarChangeListener(new Rating());
		this.bt=(Button)super.findViewById(R.id.button1);
		this.bt.setOnClickListener(new click());
	}
	相信经过前面几节课的学习,大家对上一段代码都很熟悉了,下面就是事件处理了。这里我们模拟一下美团的评分系统,之前做的美团美食列表评分只是图片,现在我们真枪实战:
private class Rating implements OnRatingBarChangeListener{

		@Override
		public void onRatingChanged(RatingBar ratingbar, float rating, boolean fromuser) {
			// TODO Auto-generated method stub
			//text.append("当前评分:"+ratingbar.getRating()+"   "+"增长步长: "+ratingbar.getStepSize());
			String result=null;
			switch((int)rating){
			case 5:
				result="非常满意";
				break;
			case 4:
				result="满意";
				break;
			case 3:
				result="还可以";
				break;
			case 2:
				result="不满意";
				break;
			case 1:
				result="非常不满意";
				break;
		
			}
			text.setText(result);
		}
		
	}

 
Android美团评分组件及消息提示框自我定制(14)
 

然后处理button事件,这里我们实现一个与系统默认不一样的信息提示框,带图片自定义的:

 

<!--EndFragment-->

private class click implements OnClickListener{

		@Override
		public void onClick(View arg0) {
			Toast t=Toast.makeText(MainActivity.this, "长时间显示", Toast.LENGTH_LONG);//这里可以定义长时间和短时间显示
			t.setGravity(Gravity.CENTER, 60, 30);//对齐方式及位置
			//取得toast的view组件,以便添加图片
			LinearLayout myview=(LinearLayout)t.getView();
			ImageView image=new ImageView(MainActivity.this);
			image.setImageResource(R.drawable.back);//设置图片资源
			myview.addView(image,0);
			t.show();
			
			
		}
		
	}

注意一定要得到Toast的view组件才可以添加图片

 

实现效果如下:


Android美团评分组件及消息提示框自我定制(14)
 

 

<!--EndFragment--><!--EndFragment--><!--EndFragment-->

相关推荐