본문 바로가기

컴퓨터/안드로이드

안드로이드 - 진행바 예제

1) 프로그래스 바

 

 - 원 모양 : 작업의 전체 분량을 미리 알 수 없을 때 사용. (default)

 - 막대 모양 : 작업 분량을 미리 알고 있을 때 사용

                    style = "?android:Attr/progressBarStyleHorizontal"

 

void setProgress (int progress)

void setSecondaryProgress (int secondaryProgress)

void incrementProgrssBy (int diff)

void incrementSecondaryProgressBy (int diff)

 

====================================  ex  ===================================

- layout -

<ProgressBar

   android:id="@+id/progress"

   style="?android:attr/progressBarStyleHorizontal"

   android:layout_width="fill_parent"

   android:layout_height='wrap_content"

   android:max="100"           <!-- 최대치 -->

   android:progress="10"     <!-- 첫 위치 -->

   android:secondaryProgress="50"/>  <!-- 두번째 위치, 색깔이 여리다. -->

 

<!-- round type progress bar의 경우 android:visibility = "T/F" 로 on/off 만 한다. -->

 

- java -

ProgressBar mProg = (ProgressBar) findViewById(R.id.progrss);

mProg.incrementProgressBy(-2);

mProg.incrementProgrssBy(2);

mProg.incrementSecondaryProgressBy(-2);

mProg.incrementSecondaryProgressBy(2);

mProg.setVisibility(View.VISIBLE);  // Circular progress bar의 경우 주로

mProg.setVisibility(View.INVISIBLE);

=============================================================================

 

boolean Activity.requestWindowFeature (int featureId)

  = getWindow().requestFeature()

 

-> 이놈들은 윈도우의 전체적인 모양과 기능에 영향을 미치므로 setContentView 전에 꼭

   호출해주어야 한다. 초기화 될 때 설정되므로 일단 요청된 기능은 취소할 수 없다.

 

 

featureId = DEFAULT_FEATURES : 기본 기능

              = FEATURE_CONTEXT_MENU : 컨택스트 메뉴. (default)

              = FEATURE_CUSTOM_TITLE : 커스텀 타이틀 바 사용.

              = FEATURE_INDETERMINATE_PROGRESS : 타이틀 바에 원형 프로그래스

              = FEATURE_LEFT_ICON : 아이콘을 왼쪽에

              = FEATURE_NO_TITLE : 타이틀 바를 가지지 않는다.

              = FEATURE_OPTIONS_PANEL : 옵션 패널을 가진다.

              = FEATURE_PROGRESS : 타이플 바에 막대 모양 프로그래스

              = FEATURE_RIGHT_ICON : 아이콘을 오른쪽에.

 

ex) requestWindowFeatrue(Window.FEATURE_PROGRESS);

    -> default로 0~10000 범위를 가진다.

 

      void setProgressBarVisibility (boolean visible)

      void Activity.setProgress(int progress)

 

 

====================================  ex  ===================================

- java #1 -

requestWindowFeature(Window.FEATURE_PROGRESS);

setContentView(R.layout.main);

 

setProgress(500);

setProgressBarVisibility(true);

 

- java #2 -

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

setContentView(R.layout.main);

 

setProgressBarIndeterminateVisibility(true);

============================================================================

 

 

 

 

 

 

2) 시크 바 (Seek bar)

 

OnSeekBarChangeListener()

  void onStartTrackingTouch (SeekBar seekBar)

  void onStopTrackingTouch (SeekBar seekBar)

  void onProgressChanged (SeekBar seekBar, int progress, boolean fromUser)

 

====================================  ex  ===================================

- layout -

<SeekBar

   android:id="@+id/seekbar"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"

   android:max="100"

   android:progress="50"/>

 

 

- java -

SeekBar mSeek = (SeekBar) findViewById(R.id.seekbar);

mSeek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){

   public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){

      // To Do

   }

 

   public void onStartTrackingTouch(SeekBar seekBar){}   // tracking 시작

   public void onStopTrackingTouch(SeekBar seekBar){}   // tracking 끝

}

============================================================================

 

 

 

3) 레이팅 바 (Rating bar)

  : 별점을 표시하거나 입력 받는 위젯.

 

안드로이드 - 진행바 예제

 

- layout -

<RatingBar

    android:id="@+id/ratingbar"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:stepSize="0.2"

    android:rating="3"/>

<RatingBar

    android:id="@+id/ratingbar2"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:numStarts="4"        <!-- 별 갯수. (default : 5) -->

    android:rating="2.5"             <!-- 별점 조정 단위 -->

    android:isIndicator="true"/>   <!-- 단순히 조정 못하게 할 것인가? (default : false) -->

 

<!-- 테두리 없이 별만, 수정 불가 -->

<RatingBar

    style="?android:attr/ratingBarStyleIndicator"/> 

 

<!-- 테무리 없는 별, 수정 불가, 작은 별 -->

<RatingBar

    style="?android:attr/ratingBarStyleSmall"/>

 

- java -

RatingBar rb = (RatingBar)findViewById(R.id.ratingbar);

rb.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener(){

   public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser){

      // To Do

   }

}

 

[출처] - 잘모름