どっこと備忘録群

アウトプットしないとインプットできない私が Androidアプリ開発をメインとした備忘録を載せています。

ProgressBarを扱う

横に伸びるProgressBarを表示する

style属性に ?android:attr/progressBarStyleHorizontal を設定する。

<ProgressBar
    android:id="@+id/progress_bar"
    style="?android:attr/progressBarStyleHorizontal"
    android:max="100"
    android:min="0"
    android:layout_width="240dp"
    android:layout_height="30dp"/>

進捗を更新する

アニメーションなし

progressプロパティに値を設定する。

val progressBar = it.findViewById<ProgressBar>(R.id.progress_bar)
progressBar.progress = 0 // アニメーションなしで進捗を0に設定

アニメーションあり

setProgress()メソッドを使う。

progressBar.setProgress(progressBar.progress + 50, true)

より滑らかでカスタマイズ可能なアニメーションを作成する場合は ObjectAnimator を使用する。

// 現在の進捗から新しい値へのアニメーションを生成する
val animation = ObjectAnimator.ofInt(progressBar, "progress", progressBar.progress + 50)
animation.duration = 1000 // アニメーションの時間は1秒に設定
animation.interpolator = DecelerateInterpolator() // 終点に近づくにつれて減速させる
animation.start() // アニメーションを開始

最終更新: 2025.9.12