반응형
|
안드로이드(Android) 간단한 RatingBar 사용예제 |
|
개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2 |
RatingBar 는 SeekBar 나 ProgressBar 의 확장버전
이라고 생각하시면 됩니다. 막대가 아니고 별표로
되어 있어서 디자인이 좀더 보기 좋아보이죠.
이번예제는 제일 큰 ratingBarStyle 바를
드래그해서 움직여 다른 2개도 동일하게 색을
채워보도록 합니다.
RatingBar 의 종류는 3가지 인데 제일 작은 것이
ratingBarStyleSmall이며 중간 크기가
ratingBarStyleIndicator, 제일 큰 것이 ratingBarStyle 입니다.
이런 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();
}
});
}
}
반응형
'안드로이드 개발' 카테고리의 다른 글
| 안드로이드(Android) RSS 구현1 - XmlResourceParser 를 이용하여 XML 파싱하기 (0) | 2014.11.21 |
|---|---|
| 안드로이드(Android) Java 코드에서 색깔값 화면에 입히기 (0) | 2014.11.20 |
| 안드로이드(Android) 색깔을 xml 로 정의 하고 관리하기 (0) | 2014.11.19 |
| 안드로이드(Android) PhoneGap, 이클립스 플러그인 설치로 좀더 쉽게 개발하기 (0) | 2014.11.18 |
| 안드로이드(Android) 이미지에서의 Exif GPS 정보를 GeoPoint 바꾸기 (6) | 2014.11.17 |
| 안드로이드(Android) 문의 – Dialog 클래스를 이용하여 다이얼로그 계산기 올리기 (0) | 2014.11.16 |
| 안드로이드(Android) 이미지뷰에서 Exif 정보 다이얼로그 띄우기 (1) | 2014.11.15 |
| 안드로이드(Android) showDialog(int) deprecated 다시 구현하기 (0) | 2014.11.14 |
