Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) 간단한 RatingBar 사용예제

안드로이드 개발

안드로이드(Android) 간단한 RatingBar 사용예제

 

개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2

 

RatingBar SeekBar ProgressBar 의 확장버전

이라고 생각하시면 됩니다. 막대가 아니고 별표로

되어 있어서 디자인이 좀더 보기 좋아보이죠.

이번예제는 제일 큰 ratingBarStyle 바를

드래그해서 움직여 다른 2개도 동일하게 색을

채워보도록 합니다.

 

RatingBar 의 종류는 3가지 인데 제일 작은 것이

ratingBarStyleSmall이며 중간 크기가

ratingBarStyleIndicator, 제일 큰 것이 ratingBarStyle 입니다.

 

안드로이드(Android) 간단한 RatingBar 사용예제

이런 3가지 종류의 RatingBar 에 대한 xml 입니다.

 

<?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" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <RatingBar
        android:id="@+id/ratbarSmall"
        style="?android:attr/ratingBarStyleIndicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <RatingBar
        android:id="@+id/ratbarIndicator"
        style="?android:attr/ratingBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="20" />

    <RatingBar
        android:id="@+id/ratbardefault"
        style="?android:attr/ratingBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

 

소스는 아주 간단합니다. .OnRatingBarChangeListener 이벤트

함수에 Listener 을 등록하고 제일큰 RatingBar

변화가 있을 때 움직인 값을 다른 2개의 바에 동시에

셋팅합니다.

 

ratBardefault.setOnRatingBarChangeListener(
		new RatingBar.OnRatingBarChangeListener() {
			
	public void onRatingChanged(
			RatingBar ratingBar, float rating, boolean fromUser) {
		
		ratBarSmall.setRating(rating);
		ratBarIndicator.setRating(rating);
		Toast.makeText(SampleRatingBar.this, 
				"rating:" + String.valueOf(rating), Toast.LENGTH_LONG).show();
	}
});

 

아래는 전체 activity 의 소스 입니다.


import android.app.Activity;
import android.os.Bundle;
import android.widget.RatingBar;
import android.widget.Toast;

public class SampleRatingBar extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sample_ratingbar);
		final RatingBar ratBarSmall = (RatingBar) findViewById(R.id.ratbarSmall);
		final RatingBar ratBarIndicator = (RatingBar) findViewById(R.id.ratbarIndicator);
		final RatingBar ratBardefault = (RatingBar) findViewById(R.id.ratbardefault);

		ratBardefault.setOnRatingBarChangeListener(
				new RatingBar.OnRatingBarChangeListener() {
					
			public void onRatingChanged(
					RatingBar ratingBar, float rating, boolean fromUser) {
				ratBarSmall.setRating(rating);
				ratBarIndicator.setRating(rating);
				Toast.makeText(SampleRatingBar.this, 
						"rating:" + String.valueOf(rating), Toast.LENGTH_LONG).show();
			}
		});
	}
}

 

Posted by 녹두장군

댓글을 달아 주세요