[Android & Kotlin] ProgressBar で進捗状況を表示する

ネット接続でデータをダウンロードには時間がかかることもあります。ロード中であることをユーザーに知らせることでユーザビリティが上がります。ProgressBar使うとダウンロードが何パーセントと簡単に表示できます。
 
1x1.trans - [Android & Kotlin] ProgressBar で進捗状況を表示する


Android Studio
2024.1.1

 




ProgressBar

 

ProgressBarはいくつかのstyleがあり、またコードを書かなくてもレイアウトで設定するだけで動きます。

  • Widget.ProgressBar.Horizontal
  • Widget.ProgressBar.Small
  • Widget.ProgressBar.Large
  • Widget.ProgressBar.Inverse
  • Widget.ProgressBar.Small.Inverse
  • Widget.ProgressBar.Large.Inverse

これらのstyleがあります。
 

 

Widget.ProgressBar

 

例えば、4つのstyleで試してみます。
LinearLayoutでやってみました。
activity_main.xml

 

 

Themeからのstyle

 

また、古い情報ではThemeのstyleを使うこともできるようです。
 
activity_main.xml

 

微妙に違いがあります

1x1.trans - [Android & Kotlin] ProgressBar で進捗状況を表示する


 
これは Theme.AppCompat.Light.DarkActionBar をThemeとして設定している場合です。なのでThemeをカスタマイズすると変更できるところもあります。
また 「?android… 」としないと呼び出されません

またBarの色設定は ..\res\values\themes\themes.xml にあるcolorの設定でできます。

 

VISIBLE と INVISIBLE

 

例えば、ロードが始まったらProgressBarを表示させておき、終わりがわからない場合は進捗が表示できないのでそのままくるくる回転させておき、終わった時に非表示にすればいいのではないでしょうか。
 
表示・非表示はこれらを使います。

 
まとめると
MainActivity.kt

 
ConstraintLayoutに変更してみました。
activity_main.xml

 
strings.xml

 
build.gradle

 
これでProgressbarをボタンをタップして非表示・表示ができました。

1x1.trans - [Android & Kotlin] ProgressBar で進捗状況を表示する

古い動画ですが動きがわかります 

 

ProgressBar.Horizontal

 

一方で、進捗がわかるようにしたい場合もあります。ProgressBar.Horizontalを使うとそのprogressをユーザーに提示できます。
 
レイアウトでindeterminateをfalseにする必要があります。
 

 
ボタンタップで10づつ増加して100まで Horizontal ProgressBar で表示するコードを書いてみます。

MainActivity.kt

 
activity_main.xml

 
strings.xml

 
build.gradle

 

実行してみると

1x1.trans - [Android & Kotlin] ProgressBar で進捗状況を表示する

 

これを使って例えばネットからのデータダウンロードの進捗を表示することなどができます。
 
 
Reference:
ProgressBar | Android Developers

シェアする

  • このエントリーをはてなブックマークに追加

フォローする