<?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" > <!-- 막대바 형식의 progress --> <ProgressBar android:id="@+id/progress" android:layout_width="fill_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleLarge" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleSmall" /> </LinearLayout>
package com.commonsware.android.threads; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.ProgressBar; public class HandlerDemo extends Activity { ProgressBar bar; //백그라운드 작업을 하고 있는 Thread 객체가 데이터를 Message에 담아서 //전달 받으면 해당메세지로 부터 데이터 추출해서 Activity의 View전달하는 역할 Handler handler = new Handler() { @Override public void handleMessage(Message msg){ bar.incrementProgressBy(5); } }; boolean isRunning=false; //Activity 생명주기 //onCreate메소드 -> onStart메소드 -> onResume메소드 -> 화면 display //화면이 가려질 때는 onPause 메소드 -> onStop메소드 //화면이 가려졌다 다시 display 될때 onRestart메소드 -> onStart메소드 // -> onResume메소드 -> 화면 display @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bar=(ProgressBar)findViewById(R.id.progress); } public void onStart(){ super.onStart(); bar.setProgress(0); //Progressbar 초기화 Thread background=new Thread(new Runnable() { public void run(){ try{ for (int i=0; i<20 && isRunning; i++){ Thread.sleep(1000); handler.sendMessage(handler.obtainMessage()); } } catch(Throwable t){ //오류가 발생하면 백그라운드 스레드를 그대로 종료한다 } } }); isRunning=true; background.start(); } public void onStop(){ super.onStop(); isRunning=false; } }
기존이미지
수정된 이미지(코드를 더 추가하여 Progress몇개더 구현함
막대의 형태의 progress
'Android > 기본' 카테고리의 다른 글
NetWork Wifi , 3G (0) | 2012.04.28 |
---|---|
Browser WebView (브라우저) (0) | 2012.04.28 |
Activity 생명주기 (0) | 2012.04.28 |
Message 팝업창 띄우기 경고창,토스트 표시,Progress Dialog (0) | 2012.04.28 |
ConText Menu 메뉴 (길게 터치시 팝업메뉴) (0) | 2012.04.28 |