Zinc #15 プログレスバーの設置

Webページのロード時にプログレスバーを表示するようにする・・・。

activity_main.xmlは、

真ん中にLinearLayoutを追加、その中にProgressBarを設置・・・。
android:indeterminate="false"で、最小値や最大値のあるタイプのものに・・・。
android:max="100"で最大値は100・・・。
style="?android:attr/progressBarStyleHorizontal"にすると、横方向のプログレスバーに・・・。

でページロードの進捗情報を得るには、WebChromeClientを継承したクラスを作る必要があるので、

f:id:BG1:20160715173832p:plain

で、

f:id:BG1:20160715173844p:plain

とし、

こう書く・・・。
activityからprogressBarオブジェクトを取得し、setProgressで引数のprogressをセットする・・・。
これでprogressBarオブジェクトには進捗情報が渡る・・・。

このprogressBarオブジェクトは、

MainActivityに定義しておいたもので、

最初は非表示・・・。

その前に、

CustomWebViewClientと同様に、CustomWebChromeClientのインスタンスもwebViewにセットしておく・・・。
これでwebViewの進捗に変化があれば、さっきのonProgressChangedに処理が飛ぶ・・・。

あとは、

ロード開始のonPageStartedではprogressBarを表示し、ロード終了のonPageFinishedではprogressBarを非表示にする・・・。

f:id:BG1:20160715175040p:plain

でこれをロードすると、

f:id:BG1:20160715175124p:plain

プログレスバーが表示される・・・。

f:id:BG1:20160715175140p:plain

ロードが終わるとプログレスバーはまた消える・・・。

https://github.com/bg1bgst333/Zinc/tree/develop/android/empty_activity/android_studio/src/Zinc