안드로이드 : 프로그레스바 를 Thread 로 돌리는 예제 :: 게임제작[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

게임제작
[1]
등록일:2018-08-22 10:47:20 (0%)
작성자:
제목:안드로이드 : 프로그레스바 를 Thread 로 돌리는 예제

프로그레스바 (ProgressBar) 는  로딩상황 표시나 혹은 미디어 재생등에 사용되기 때문에 일반적으로 쓰레드 (Thread)를 통해서 구현해주는게 일반입니다.

이번 예제에서는 화면에 ProgressBar 하나 생성하여,  0 ~ 100% 까지의 값을 왕복하며 표시해주는 것을 쓰레드로 구현해보았습니다.

1. ProgressBar.setProgress(int) 로  표시
2. Thread를 사용하여 화면 뷰에 표시하기 위해선 Handler 객체 꼭 필요
3. Handler.post()  의 run() 구현

 

[메인액티비티 소스]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class MainActivity extends ActionBarActivity {
    Handler handler = new Handler(); // Thread 에서 화면에 그리기 위해서 필요
    int value = 0// progressBar 값
    int add = 1// 증가량, 방향 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 앱시작시, Thread 를 시작해서 ProgressBar 를 증가시키기
        // Thread 내부에서 화면에 작업을 하려면 Handler 를 사용해야한다
        final ProgressBar pb = (ProgressBar) findViewById(R.id.progressBar1);
        
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() { // Thread 로 작업할 내용을 구현
                while(true) {
                    value = value + add;
                    if (value>=100 || value<=0) {
                        add = -add;
                    }
                    
                    handler.post(new Runnable() {
                        @Override
                        public void run() { // 화면에 변경하는 작업을 구현
                            pb.setProgress(value);
                        }
                    });
                    
                    try {
                        Thread.sleep(100); // 시간지연
                    } catch (InterruptedException e) {    }
                } // end of while
            }
        });
        t.start(); // 쓰레드 시작
    } // end of onCreate
// end of class
cs

 

[실행결과] 


[본문링크] 안드로이드 : 프로그레스바 를 Thread 로 돌리는 예제
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34803
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.