늘 ProgressBar,ProgesDialog 의 용법 에 대해 이야기 합 니 다.

1.ProgressBar
1.상용 유형
1.1 불 확정 식 원형 진도 게이지

style="@android:style/Widget.Holo.Light.ProgressBar"
style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Large"
...
진 도 를 표시 하지 않 았 습 니 다.오 버 애니메이션 으로 사용 할 수 있 습 니 다.대,중,소 세 가지 크기 가 있 는데 기본 값 은 중 입 니 다.
1.2 선형 진도 게이지

style="@android:style/Widget.ProgressBar.Horizontal"
style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Horizontal"
...
디 스 플레이 진도 가 있 습 니 다.
1.3 제목 표시 줄 불 확정 진도 표시 줄

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setProgressBarIndeterminateVisibility(true);
제목 표시 줄 오른쪽 에 표 시 된 진 도 를 표시 하지 않 는 원형 진도 바 입 니 다.
1.4 제목 표시 줄

requestWindowFeature(Window.FEATURE_PROGRESS);
setProgressBarVisibility(true);
제목 표시 줄 상단 에 표 시 된 막대 진도 바 는 setProgess(int)를 통 해 현재 진 도 를 설정 할 수 있 으 며 최대 값 은 10000 입 니 다.
2.상용 컨트롤 속성

<!--      -->
android:max
<!--      -->
android:progress
<!--      -->
android:secondaryProgress
<!--       ;true    ,false   -->
android:indeterminate
<!--       -->
android:progressDrawable
3.사용자 정의 스타일
컨트롤 의 android:progressDrawable 속성 을 통 해 사용자 정의 drawable 파일 을 참조 합 니 다.일반적으로 세 가지 내용 을 정의 해 야 한다.배경,첫 번 째 진도,두 번 째 진도.
범례:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <!--    -->
  <item android:id="@android:id/background">
    <shape>
      <!--  -->
      <corners android:radius="10dip" />
      <!--   -->
      <solid android:color="#dddddd" />
    </shape>
  </item>

  <!--      -->
  <item android:id="@android:id/secondaryProgress">
    <clip>
      <shape>
        <corners android:radius="10dip" />
        <solid android:color="#78bb78" />
      </shape>
    </clip>
  </item>

  <!--      -->
  <item android:id="@android:id/progress">
    <clip>
      <shape>
        <corners android:radius="10dip" />
        <solid android:color="#55bb55" />
      </shape>
    </clip>
  </item>

</layer-list>
효과 그림 붙 이기:
ProgressBar自定义样式
4.관건 적 인 방법

//      
setProgress(int)
//      
setSecondaryProgress(int)
//      
getProgress()
//      
getSecondaryProgress()
//         
incrementProgressBy(int)
//         
incrementSecondaryProgressBy(int)
//       
getMax()
5.범례
레이아웃 이 비교적 간단 하고 선형 레이아웃 이 며 세로 로 배열 되 어 있 습 니 다.여 기 는 코드 를 붙 이지 않 고 그림 을 직접 붙 입 니 다.
ProgressBar演示范例
Java:

public class ProgessBarActivity extends Activity implements View.OnClickListener{

  private ProgressBar progressBar;
  private TextView text;
  private Button addFirst;
  private Button addSecond;
  private Button subFirst;
  private Button subSecond;
  private Button reset;
  private int first;
  private int second;
  private int max;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_progess_bar);

    init();

  }

  private void init() {
    progressBar = (ProgressBar) findViewById(R.id.progress_bar);
    text = (TextView) findViewById(R.id.text);
    addFirst = (Button) findViewById(R.id.add_first);
    subFirst = (Button) findViewById(R.id.sub_first);
    addSecond = (Button) findViewById(R.id.add_second);
    subSecond = (Button) findViewById(R.id.sub_second);
    reset = (Button) findViewById(R.id.reset);

    //    、  、    
    first = progressBar.getProgress();
    second = progressBar.getSecondaryProgress();
    max = progressBar.getMax();

    addFirst.setOnClickListener(this);
    addSecond.setOnClickListener(this);
    subFirst.setOnClickListener(this);
    subSecond.setOnClickListener(this);
    reset.setOnClickListener(this);
  }

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.add_first:
        //     10
        progressBar.incrementProgressBy(10);
        break;
      case R.id.add_second:
        //     10
        progressBar.incrementSecondaryProgressBy(10);
        break;
      case R.id.sub_first:
        progressBar.incrementProgressBy(-10);
        break;
      case R.id.sub_second:
        progressBar.incrementSecondaryProgressBy(-10);
        break;
      case R.id.reset:
        //       
        progressBar.setProgress(30);
        progressBar.setSecondaryProgress(60);
        break;
    }
    //      
    text.setText("     " + (int) (1.0*first/max*100) + "%,     " + (int) (1.0*second/max*100) + "%");
  }
}
2.ProgressDialog
1.구조 함수

ProgressDialog(Context context)
ProgressDialog(Context context, int theme)//theme      
2.관건 적 인 방법

//       
setProgressStyle(int style)
//       
setTitle(String title)
//         
setMessage(CharSequence message)
//       
setIcon(Drawable d)
//    ,whichButton     ,text     ,listener    
setButton(int whichButton, CharSequence text, OnClickListener listener)
//     
show()
이 밖 에 이 몇 가지 방법 을 제외 하고 ProgressDialog 도 상기 ProgressBar 에서 소개 한 방법 을 사용 할 수 있다.
3.범례

public class ProgressDialogActivity extends Activity {

  private ProgressDialog proDialog;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_progress_dialog);

    findViewById(R.id.show).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        //     
        proDialog = new ProgressDialog(ProgressDialogActivity.this);
        //       
        proDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        //       
        proDialog.setTitle("  ProgressDialog");
        //         
        proDialog.setMessage("    ,    !");
        //         
        proDialog.setIcon(R.drawable.ic_launcher);
        //         ,   10000
        proDialog.setMax(100);
        //        
        proDialog.incrementProgressBy(30);
        //      
        proDialog.setButton(DialogInterface.BUTTON_POSITIVE, "  ", new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
          }
        });
        //     
        proDialog.show();
      }
    });
  }
}
이상 의 이 상투적인 ProgressBar,ProgessDialog 의 용법 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 많은 응원 을 바 랍 니 다.

좋은 웹페이지 즐겨찾기