android学习笔记27:星级评分条

     RatingBar:星级评分条,顾名思义,一般就是用来做评分用的,但有时我们也可以把它当做一个水平的滑动条来用,作为一些程序的设置工具。下面的这个程序就是用了星级评分条来调整图片的透明度。

android学习笔记27:星级评分条_第1张图片

界面布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="320dp"
        android:contentDescription="@string/hello"
        android:src="@drawable/lijiang" />

    <RatingBar
        android:id="@+id/rating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:max="255"
        android:numStars="5"
        android:progress="255"
        android:stepSize="0.5" />

</LinearLayout>

用OnRatingBarChangeListener来监听评分条的改变。

public class RatingBarTest extends Activity
{
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);  
		setContentView(R.layout.main);
		final ImageView image = (ImageView)findViewById(R.id.image);
		RatingBar ratingBar = (RatingBar)findViewById(R.id.rating);
		
		ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener()
		{
			//当拖动条的滑块位置发生改变时触发该方法
			@Override
			public void onRatingChanged(RatingBar arg0
				, float rating, boolean fromUser)
			{
				//动态改变图片的透明度,其中255是星级评分条的最大值,
				//5个星星就代表最大值255
				image.setAlpha((int)(rating * 255 / 5));
			}
		});	
	}
}


你可能感兴趣的:(android,image,layout,Class,float,encoding)