Android Studio/java

47. [안드로이드/java] WebView에서 ProgressBar 만들기

drizzle0925 2022. 3. 2. 13:32
728x90

웹뷰로 앱을 만들다가 상단에 페이지 로드 중인지 로드가 끝나는지 알려주는 Progress Bar를 만들고 싶어서 정리하게 되었습니다. 상단에 자세히 보면 초록색 바가 지나는 게 이걸 구현하고 싶었습니다. 그럼 코드에 대해서 알아보시죠

 

app > manifests > AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

 

res > layout > activity_main.xml

<ProgressBar
    android:id="@+id/progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="4dp" />

 

app > java > com.tistory.like-a-drizzle > MainActivity 

private ProgressBar progressBar;
...
@Override
    protected void onCreate(Bundle savedInstanceState) {
    ...
    private ProgressBar progressBar;
    ...
    
    mWebView.setWebChromeClient(new WebChromeClient() {
        ...
        
        // progressbar
        progressBar = findViewById(R.id.progressBar);
        progressBar.setMax(100);
        
        ...
        
        // progress bar
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            progressBar.setProgress(newProgress);
            if(newProgress==100)
                progressBar.setVisibility(View.INVISIBLE);
            else
                progressBar.setVisibility(View.VISIBLE);
            super.onProgressChanged(view, newProgress);
        }
    }

    mWebView.loadUrl("https://www.google.com");
    progressBar.setProgress(0);
}

 

이렇게 하면 위와 같은 결과물을 확인하실 수 있습니다.

728x90