6

まず、これは「プログレスバーの色を変更する方法」という質問の複製ではなく、私の問題は解決しますが、別の問題が発生します。

だから、私は水平の進行状況バーを持っています。 . ただし、ご存知のように、一部の携帯電話では、プログレス バーのデフォルトのリソースの色が緑、一部はオレンジ色です。すべてのデバイスで色を緑にしたいので、プログレス バー属性で設定しますprogressDrawable(ほとんどのデバイスで推奨されています)。 Stackoverflow の回答) を次のxmlファイルに

 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
 <corners android:radius="5dip" />
 <gradient
  android:startColor="#4CC417"
  android:centerColor="#4CC417"
  android:centerY="0.75"
  android:endColor="#4CC417"
  android:angle="270"
/>
</shape>

これを行うと、進行状況バーに進行状況全体 (つまり、最終パーセンテージ、100) が表示されるだけになり、0 からパーセンテージまでのアニメーションは表示されません。

  1. プログレス バーのデフォルトの色を変更し、デフォルトのアニメーションを維持する方法はありますか?

  2. それができない場合は、自分でアニメーションを作成する必要がありますか? もしそうなら、プログレスバーを模倣する独自のアニメーションを作成する方法のスニペットを教えてもらえますか?

4

1 に答える 1

1

プログレス バー ドローアブルには、ID が「background」と「progress」の 2 つの項目が必要です。オプションで 3 つ目の項目「secondaryProgress」があります。ここにあるものを見てみましょう: https://github.com/android/platform_frameworks_base/blob/master/core/res/res/drawable/progress_horizo​​ntal.xml

あなたの場合、ドローアブルは次のようになります。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ff9d9e9d"
                    android:centerColor="#ff5a5d5a"
                    android:centerY="0.75"
                    android:endColor="#ff747674"
                    android:angle="270"
            />
        </shape>
    </item> 

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient
                        android:startColor="#4CC417"
                        android:centerColor="#4CC417"
                        android:centerY="0.75"
                        android:endColor="#4CC417"
                        android:angle="270"
                />
            </shape>
        </clip>
    </item>

</layer-list>

また、"clip" 要素も重要です。これを使用すると、システムが "progress" シェイプをクリップできるからです。http://developer.android.com/reference/android/graphics/drawable/ClipDrawable.htmlを参照してください。

于 2012-10-22T15:48:25.020 に答える