web-dev-qa-db-ja.com

水平Android不確定進行状況バーを表示する方法

Androidで不確定な水平プログレスバーを表示するにはどうすればよいですか?進行状況バーのアニメーションは0から100で始まり、100から0に連続して戻ります。ホイールの進行状況バーを探していません。

42
Vinoth

setIndeterminateが無限の水平プログレスバーを与えることは既に知っていました。しかし、それは水平になることを除いて、ローディングホイールに似ています。あなたが私の質問を見るなら、私は0から始まり100までずっと行く水平バーを探していました(徐々に増加します)。 Androidでこれを実現するには、以下のように進行状況バーを使用する必要があります。

 <ProgressBar
    Android:id="@+id/progress_horizontal"
    Android:indeterminateOnly="false"
    Android:indeterminateDrawable="@drawable/progress_indeterminate_horizontal"
    Android:progressDrawable="@drawable/progress_horizontal"
    Android:minHeight="24dip"
    Android:maxHeight="24dip" 
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"/>

進行状況バーの背景を変更したいので、ProgressDrawableとIndeterminateDrawableを変更しました。元のドロアブルはframeworks/base/core/res/res/drawableの下にあります。それらをプロジェクトにコピーし、必要に応じて色を変更します。

進捗カウントを更新し、Thread.Sleepを実行するスレッドを作成します。次に、メッセージをハンドラーに送信し、ハンドラーがUIスレッドの進行状況バーを更新します。

43
Vinoth

ProgressBarのメソッドsetIndeterminateを使用します。

Android.widget.ProgressBar bar = new Android.widget.ProgressBar(context);
bar.setIndeterminate(true);

しかし、そうです、開発者向けドキュメントでこれをすぐに見つけることができたはずです。

http://developer.Android.com/reference/Android/widget/ProgressBar.html#setIndeterminate%28boolean%29

12
MichaelM

Vinoth Answerを拡張するための準備ができたコードを次に示します。

<ProgressBar
        Android:id="@+id/progressBarLoadingRecite"
        Android:indeterminateDrawable="@Android:drawable/progress_indeterminate_horizontal"
        Android:minHeight="24dip"
        Android:layout_marginTop="20dip"
        Android:indeterminate="true"
        Android:maxHeight="24dip"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"/>
9
user586399

少し遅いかもしれませんが、次のようなことができます:

<ProgressBar
    Android:id="@+id/progress"
    Android:layout_width="match_parent"
    Android:layout_height="10dp"
    Android:indeterminate="true"
    style="?android:attr/progressBarStyleHorizontal" />

それが誰かを助けることを願っています!

4

進捗バーを定義するxmlで、次を追加できます。

style="@Android:style/Widget.ProgressBar.Horizontal"
3
Steve Waring