반응형
안드로이드(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 |