2014-10-23 6 views
14

Ich habe eine kreisförmige ProgressBar, um die Zeit herunterzuzählen. Es funktioniert tadellos auf kitkat und vorher, aber auf android L zeigt es immer einen vollen Kreis, egal was Fortschritt ich einstelle.ProgressBar Circle zeigt keinen Fortschritt auf Android L (API 21)

Image

layout.xml

<ProgressBar 
       android:id="@+id/progressBar1" 
       style="?android:attr/progressBarStyleHorizontal" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:indeterminate="false" 
       android:max="200" 
       android:progress="100" 
       android:progressDrawable="@drawable/progresscircle" /> 

progresscircle.xml

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

    <item> 
     <shape 
      android:innerRadiusRatio="3.4" 
      android:shape="ring" 
      android:thicknessRatio="6.0" > 
      <solid 
       android:color="#ffffff" /> 
     </shape> 
    </item> 
     <item> 
      <rotate 
       android:drawable="@drawable/progress_particle" 
       android:fromDegrees="0" 
       android:pivotX="50%" 
       android:pivotY="50%" 
       android:toDegrees="360" /> 
     </item> 

    </layer-list> 
+0

Ihre Start- und Endfarben sind identisch mit ARGB. Hast du Android ausprobiert: startColor = "# 00ffffff"? – alanv

+0

Sie haben recht, das waren früher zwei verschiedene Farben. Jetzt sollte es nur noch weiß sein (siehe aktualisierte Frage). Das Problem ist immer noch das gleiche. –

+0

Was ist das erwartete Verhalten? Kannst du einen Screenshot hinzufügen? Aus dem Code sieht es wie ein fester Ring aus, der sich um seine Mitte dreht - was an jeder Stelle der Animation gleich aussehen würde. – alanv

Antwort

29

Der Standardwert für android: useLevel unter dem Tag falsch falsch in der L geändert Vorschau erstellen Sie können dies umgehen, indem Sie es explizit auf "True" setzen.

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape 
      ... 
      android:useLevel="true"> 
      <solid 
       ... 
+0

Dieser wurde im Master-Zweig für ein zukünftiges Release behoben. – alanv

+0

sagt 'android: useLevelForShape' ist ein unbekanntes Attribut, aber 'android: useLevel' hat funktioniert! –

+0

Hoppla! Entschuldigung, ja, der korrekte Attributname ist useLevel. Das Feld, in das es geladen wird, ist mUseLevelForShape. ;) – alanv