2012-04-01 13 views
2

Ich möchte eine Reihe von RotateDrawable Objekte verwenden, um ein zusammengesetztes Pendel zu animieren (so muss der Drehpunkt eines zweiten RotateDrawable an einen Punkt auf einem ersten "RotateDrawable" "angefügt" werden). Dies bedeutet, dass ich berechnen muss, wo ein Punkt im Zeichen nach einer Drehung ist. Es scheint keine Methoden zu geben, um den Drehpunkt einer RotateDrawable zu bekommen oder zu setzen; kurz, wenn ich sie direkt aus XML abrufe, wenn das Ding aufgeblasen ist, kann ich mir keinen Weg vorstellen, dies zu tun.Wie bekomme ich den Drehpunkt von einem RotateDrawable programmgesteuert?

Antwort

0

die Pivot von XML beim Aufblasen Ersten kann ähnlich wie in einer Art und Weise geschehen:

//r is a Resources object containing the layout 
//id is an integer from R.drawable 
XmlPullParser parser = r.getXml(id); 
AttributeSet attrs = Xml.asAttributeSet(parser); 
float pivotX = attrs.getAttributeFloatValue("http://schemas.android.com/apk/res/android", "pivotX", 0.5f); 
float pivotY = attrs.getAttributeFloatValue("http://schemas.android.com/apk/res/android", "pivotY", 0.5f); 

//d is a RotateDrawable 
d.inflate(r, parser, attrs); 

Das Attribut sollte zwischen null und eins (falls vorhanden) und 0,5f ist der Standardwert von Android gesetzt, wenn Das Attribut ist nicht vorhanden.

http://idunnolol.com/android/drawables.html#rotate

WICHTIGER HINWEIS

Ich habe erkannt, es ist auch wichtig android:fromDegrees und android:toDegrees zu erhalten, wie wenn, wie ich, du bist onLevelChanged(int) mit der Menge der Rotation zu bekommen, müssen Sie Wissen Sie, wie viel Rotation Sie tatsächlich bekommen. Dieselbe Methode funktioniert für diese Attribute. Die Standardwerte lauten 0.0f und 360.0f (in Grad). Level liegt zwischen 0 und 10.000, wobei 0 fromDegrees und 10.000 entspricht toDegrees entspricht.

+0

Ich habe mich dafür entschieden, einen Standard 'Drawable' zu ​​verwenden, der sowieso eine' Bitmap' auf einem 'Canvas' anzeigt, da die' Matrix'-Klasse es einfacher macht, Übersetzungen zu programmieren (und die abhängigen Elemente eines Verbundpendels müssten) Übersetzen). –

Verwandte Themen