/ / Android ProgressBarのドロアブルを変更する-android、progress-bar

Android ProgressBarのドロアブルの変更 - アンドロイド、プログレスバー

progress_incomplete.xmlとprogress_complete.xmlを取得しました

どちらのファイルもこのようなものです(実際には重要ではないため、スペースを節約するためにすべてのグラデーションとストローク情報を削除しました)。

基本的に、incomplete.xmlは黄色で、completeは緑色です。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
...
</shape>
</item>

<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
...
</shape>
</clip>
</item>
<item
android:id="@android:id/progress"
>
<clip>
<shape>
...
</shape>
</clip>
</item>

</layer-list>

私のJavaファイルには、これがあります:

            if (percentage == 100)
{
// Change colour
progressBar.setProgressDrawable(R.drawable.progress_complete);
}

しかし、これは機能していません。 setBackgroundとsetBackgroundDrawableも試しましたが、変更は有効になりません。

私は何をしますか?

ありがとう

回答:

回答№1は2
if (percentage == 100) {
// Change colour
Drawable drawable = getResources().getDrawable(R.drawable.progress_complete);
progressBar.setProgressDrawable(drawable);
}

回答№2の場合は0

参照 この SOで答えると、この解決策を試すことができます。問題が解決する場合があります。

if (percentage == 100)

{
// Change colour
Rect bounds = progressBar.getProgressDrawable().getBounds();
progressBar.setProgressDrawable(R.drawable.progress_complete);
progressBar.getProgressDrawable().setBounds(bounds);
}