2016-05-31 3 views
4

Ich habe eine Animation-Liste xml ziehbar anim_progress.xml:Animation-Liste mit Skala-Tag nicht in Eibisch Arbeits

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

    <item android:duration="100"> 
     <scale android:drawable="@drawable/frame_1" android:scaleGravity="center"/> 
    </item> 

    <item android:duration="100"> 
     <scale android:drawable="@drawable/frame_2" android:scaleGravity="center"/> 
    </item> 

    <item android:duration="100"> 
     <scale android:drawable="@drawable/frame_3" android:scaleGravity="center"/> 
    </item> 

    . 
    . 
    . 

</animation-list> 

Ich benutze scale Tag, weil die Bilder frame_x.png sind größer als ein Container-Ansicht. Der Grund dafür ist die Fähigkeit, zu den meisten Bildschirmgrößen zu passen.

Ich benutze diese Frame-Animation als indeterminateDrawable meiner benutzerdefinierten ProgressBar:

<ProgressBar 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:indeterminateOnly="true" 
    android:indeterminate="true" 
    android:foregroundGravity="center" 
    android:indeterminateDrawable="@drawable/anim_progress" 
    /> 

Es funktioniert OK in Android-Versionen vor Eibisch. Ich habe Emulatoren und Geräte überprüft. Aber in Marshmallow zeigt es einfach nichts. Leerer leerer Raum. Sowie das Vorschaufenster in Android Studio.

Wenn ich das scale-Tag aus dem animation-list entfernen, funktioniert es gut in Marshmallow, und skaliert sich den richtigen Weg, scheint aber in anderen Android-Versionen abgeschnitten werden.

Ich weiß, dass ich separate Datei in drawable-v23 Ordner machen kann, vor der Nuss wollte ich fragen, ob jemand andere Technik der Skalierung der Fortschrittsbalkenrahmen Animation in Marshmallow über Xml ziehen kann.

Antwort

0

Ich stieß auf das gleiche Problem. Ich habe keine Ahnung, warum es in Marhmallow nicht funktioniert, aber die Arbeit ist, route als intermediatDrawable und nicht als Animationsliste zu verwenden.

Etwas wie folgt aus:

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
android:duration="250" 
android:fromDegrees="359" 
android:toDegrees="0" 
android:pivotX="50%" 
android:pivotY="50%" 
android:repeatCount="infinite" 
android:interpolator="@android:anim/linear_interpolator" 
android:drawable="@drawable/icn_refresh"> 
</rotate> 
+0

yep, drehen funktionieren wird, aber es ist nicht eine Arbeit um für die Animation-Liste :) i meinem Fall habe ich einen Frame für Frame-Animation eines nicht rotierenden Objekten, so drehen wird nicht helfen. –

Verwandte Themen