【Kotlin/Android】ProgressBarでローディングビューを実装する方法

この記事からわかること

  • Android Studio/KotlinProgressBar使い方
  • ローディングビュー実装方法
  • 進捗バーの実装方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

公式リファレンス:ProgressBar

ProgressBarでローディングビューを実装する方法

【Kotlin/Android】ProgressBarでローディングビューを実装する方法

Android/Kotlinでローディングビューを実装するにはProgressBarを使用します。これだけで上記のようなぐるぐると回るローディング機能を実装することができます。

<ProgressBar
  android:id="@+id/loading_icon"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" />

ローディングビューの大きさはstyleを指定することで変更することも可能です。

<ProgressBar
  android:id="@+id/loading_icon"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  style="?android:attr/progressBarStyleSmall" />
  

  <ProgressBar
  android:id="@+id/loading_icon"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  style="?android:attr/progressBarStyleLarge" />

進捗バーを実装する

styleprogressBarStyleHorizontalを指定することで進捗バーを実装することも可能progressBarStyleHorizontalです。

<ProgressBar
  android:id="@+id/progressBar"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  style="?android:attr/progressBarStyleHorizontal" />

この進捗具合はsetProgressメソッドを使用して変化させます。

【Kotlin/Android】ProgressBarでローディングビューを実装する方法

タイマーを使用して「0.1秒ごとに1%進捗バーを進める実装」をしてみました。

class MainActivity : AppCompatActivity() {

    private lateinit var progressBar: ProgressBar
    private var progress = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        progressBar = findViewById(R.id.progressBar)

        val timer = Timer()
        timer.scheduleAtFixedRate(object : TimerTask() {
            override fun run() {
                progress += 1
                runOnUiThread {
                    if (progress >= 100) {
                        progress = 0
                    }
                    progressBar.progress = progress
                }
            }
        }, 0, 100)
    }
}

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index