프로그래밍/Android

[Android]APIDemo Progressbar 제작 (Incremental)

프리월드 2010. 10. 2. 23:54

 

 

제작 해보겠습니다.


main.xml



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content">


    <ProgressBar android:id="@+id/progress_horizontal"

        style="?android:attr/progressBarStyleHorizontal"

        android:layout_width="200dip"

        android:layout_height="wrap_content"

android:max="100"

       android:progress="50"

       android:secondaryProgress="75" />


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/progressbar_1_default_progress" />        


    <LinearLayout

        android:orientation="horizontal"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content">


        <Button android:id="@+id/decrease"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/progressbar_1_minus" />


        <Button android:id="@+id/increase"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/progressbar_1_plus" />


    </LinearLayout>


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/progressbar_1_secondary_progress" />        


    <LinearLayout

        android:orientation="horizontal"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content">


        <Button android:id="@+id/decrease_secondary"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/progressbar_1_minus" />


        <Button android:id="@+id/increase_secondary"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/progressbar_1_plus" />


    </LinearLayout>


</LinearLayout>


중요한 녀석만 보겠습니다.

        style="?android:attr/progressBarStyleHorizontal" <- 막대모양 progressBar를 사용합니다.

        android:max="100" <- max값을 100으로 지정

        android:progress="50" <- 진행상태를 50으로 합니다.

        android:secondaryProgress="75" /> <- second Progress는 75로 합니다.

 

ProgressBar1.JAVA



public class ProgressBar1 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Request the progress bar to be shown in the title
        requestWindowFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.progressbar_1);
        setProgressBarVisibility(true);
        
        final ProgressBar progressHorizontal = (ProgressBar) findViewById(R.id.progress_horizontal);
        setProgress(progressHorizontal.getProgress() * 100);
       setSecondaryProgress(progressHorizontal.getSecondaryProgress() * 100);
        
        Button button = (Button) findViewById(R.id.increase);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementProgressBy(1);
                // Title progress is in range 0..10000
                setProgress(100 * progressHorizontal.getProgress());
            }
        });

        button = (Button) findViewById(R.id.decrease);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementProgressBy(-1);
                // Title progress is in range 0..10000
                setProgress(100 * progressHorizontal.getProgress());
            }
        });

        button = (Button) findViewById(R.id.increase_secondary);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementSecondaryProgressBy(1);
                // Title progress is in range 0..10000
                setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());
            }
        });

        button = (Button) findViewById(R.id.decrease_secondary);
        button.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                progressHorizontal.incrementSecondaryProgressBy(-1);
                // Title progress is in range 0..10000
                setSecondaryProgress(100 * progressHorizontal.getSecondaryProgress());
            }
        });
        
    }
}


타이틀 바에 ProgressBar를 넣어줍니다.
 requestWindowFeature(Window.FEATURE_PROGRESS);

setProgress(progressHorizontal.getProgress() * 100);

setSecondaryProgress(progressHorizontal.getSecondaryProgress() * 100);
진한 ProgressBar를 XML의 값을 불러옵니다
연한(second) 
ProgressBar를 XML의 값을 불러옵니다

progressHorizontal.incrementProgressBy(1);
progressbar의 값을 1증가 시켜주죠
setProgress(100 * progressHorizontal.getProgress());
증가한 값을 적용해 줍니다.

설명이 엉성하지만 지적해 주시면 수정하겠습니다.