私は現在、動的に更新するProgressBar
. 特定のパーセンテージで、progessbar は別の色のドローアブルを設定します。現在、さまざまな色のクリップ ドローアブルがドローアブル xml で定義されています。と題されたもののprogressbar_blue_states
詳細は次のとおりです。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background"
android:drawable="@drawable/progressbar_grey">
</item>
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/progressbar_blue" />
</item>
</layer-list>
ダイアログを更新する必要があるときはいつでも、次のコードを呼び出します。
progressBar.setProgressDrawable(getResources().getDrawable(R.drawable.progressbar_blue_states));
ただし、これは ProgressBar を更新しないだけでなく、空白がその場所に残っているプログレス バーを完全に削除します。ただし、android:progressDrawable="@drawable/progressbar_blue_states"
xml に設定してこのsetProgressDrawable()
呼び出しを実行すると、正しく読み込まれます。必要に応じて色を更新するには、setProgressDrawable が必要です。
この呼び出しは Android 4.0 以降では正常に機能しますが、Android 2.3 では問題が発生しています。何か案は?
編集
これは、xml で ProgressBar を設定する方法です。
<ProgressBar android:id="@+id/progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginBottom="2dp"
android:indeterminate="false"
android:indeterminateOnly="false"
android:progress="24"
android:max="100"
android:progressDrawable="@drawable/progressbar_red_states" />