-
WebView 로딩시 프로그래스바 표시안드로이드/학습&강좌 2011. 8. 31. 09:44
WebView 로딩시 전체 로딩이 끝나기 전까지 프로그래스로 진행 상황또는 진행중인 상태를 알려 줄 수 있다.
마냥 흰 화면만 나오고 대기하기엔 사용자가 상태를 알 수 없으므로 표시해주면 좋다.
WebViiew 내의 클라이언트를 Setting 하여 클라이언트내의 메소드를 오버라이딩 해서 구현한다.
클라이언트의 종류는 두가지가 있다.
두 클래스간 오버라이드 할 수 있는 함수는 많다. 각각의 의미는
http://developer.android.com/reference/android/webkit/WebChromeClient.html
이곳을 참고 하기 바란다.
일단 ChromClient를 이용해서 구현해보도로 하겠다.
ChromClient 내의 onProgressChanged 함수를 살펴보자.public void onProgressChanged (WebView view, int newProgress)
Since: API Level 1Tell the host application the current progress of loading a page.
Parameters
view The WebView that initiated the callback. newProgress Current page loading progress, represented by an integer between 0 and 100.
이렇게 된다. 소스는 간단하니 다른 첨부 설명은 하지 않도록 하겠다.
이 함수를 이용하게 되면 100이 되었을 경우 로딩이 완료 되었다는 걸 확인 할 수 있다.
고로 0 ~ 100사이의 값을 이용해서
진행 상황을 Progress Bar 형태로 표현을 해도 된다.
========>
설명은 여기까지 하고 구현한 코드를 살펴 보자면
package pack.epong.com;import java.net.URLEncoder;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.TextView;public class SampleWebActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
public static final String BLOG_URL = "http://m.naver.com/";
private WebView m_webview;
private ProgressBar m_progress;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// String word = getIntent().getStringExtra("Word");
TextView textview = (TextView) findViewById(R.id.Search_Txt_Word);
textview.setText("EpoNg's Blog");
m_progress = (ProgressBar) findViewById(R.id.webview_progress);
String url = BLOG_URL;
m_webview = (WebView) findViewById(R.id.webview);
m_webview.getSettings().setJavaScriptEnabled(true);
m_webview.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(WebView view, int newProgress) {
setVisbilityProgress(true);
if(newProgress >= 100){
setVisbilityProgress(false);
}
}
});
m_webview.loadUrl(url);
((ImageButton) findViewById(R.id.Search_Btn_Prev)).setOnClickListener(this);
}
public void setVisbilityProgress(boolean visible)
{
if(visible)
m_progress.setVisibility(View.VISIBLE);
else
m_progress.setVisibility(View.GONE);
}@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.Search_Btn_Prev:
finish();
break;
}
}}
실행 화면
'안드로이드 > 학습&강좌' 카테고리의 다른 글
AdMob 내가 만든 앱에 광고 넣기 (0) 2015.06.04 Blink Animation 적용하기 (0) 2015.06.03 EditText InputType 속성 정의 (0) 2012.11.19 인텐트로 클래스 데이터 넘기기 (1) 2011.12.17 내 App 리스트 보기 & Mp3 파일 Album_Art 연결하기 (3) 2011.11.23 CoverFlow Version2 (Matrix 를 이용) (0) 2011.08.25 Custom ExpandableListView 만들기 (43) 2011.08.23 EXTERNAL_CONTENT_URI 를 이용한 Media File 목록 불러오기 (11) 2011.08.17 NDK-Build 하기 ( NDK 시작 ) (0) 2011.08.09 EditText Styling 하기(코너 라인드 처리) (6) 2011.08.06 댓글