代码:
界面设计代码:
<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/imageView1"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/test" />
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:max="255"
android:numStars="5"
android:progress="255"
android:stepSize="0.5" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/level" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/best" />
</LinearLayout>
</LinearLayout>
事件监听代码
package com.example.imageviewtest;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取界面中的控件
// 获取图片控件
final ImageView iv = (ImageView) findViewById(R.id.imageView1);
// 获取星际评价控件
RatingBar rb = (RatingBar) findViewById(R.id.ratingBar1);
// 获取级别控件
final TextView tv = (TextView) findViewById(R.id.textView2);
// 点击评价时响应的事件
rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
// 设置图片的清晰度
iv.setAlpha((int) (rating * 255 / 5));
// 设置评分标准
int level = (int) (rating);
if (level == 3) {
tv.setText("良好");
} else if (level == 5) {
tv.setText("优秀");
} else if (level == 1) {
tv.setText("差评");
} else if (level == 4) {
tv.setText("还好");
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}