AnimatorSet mit Rotation und Tranlsation - erneut an neuer Position starten - Wie? Muss ich PivotXY ändern oder XY tauschen ?

  • Antworten:1
KatjaHasi
  • Forum-Beiträge: 7

04.03.2014, 14:32:44 via Website

Hallo,
ich brauche dringend Hilfe. In ein paar Wochen geht mein Bachelor(MedienInf) los und ich übe gerade für die praktischen Aufgabe schon mal einzelne nötige Techniken. Es gibt eine Map auf der eine Figur in der Mitte sich optisch dreht und bewegt in dem der Hintergrund(View) animiert wird. Nach der Drehung wird der Hintergrund noch um 80px verschoben. Jetzt zu meinem Problem an dem ich hier verzweifel: Wo bekomme ich den neuen PivotX, X, Y, PivotY Punkt her, um den Hintergrund von dem neuen Punkt wieder sich drehen und bewegen zu lassen. Momentan dreht sich der Hintergrund dann mit einem größeren Abstand zur zentralen Figur.
Ach, ja, animiert wird mit einem AnimatorSet.
Ich hoffe, ich konnte mein Problem gut genug erklären... und ihr könnt mir weiterhelfen!!!
Ich bin für jeden Tipp dankbar!
Viele Grüße,
Katja

Antworten
KatjaHasi
  • Forum-Beiträge: 7

05.03.2014, 14:06:27 via Website

Sooo, gestern habe ich wohl noch eine Lösung gefunden mit der ich gut leben kann.
Die Punkte X, Y müssen auf 0 zurückgesetzt werden und Pivot X, Y je nach Drehung und Drehrichtung angepasst werden.
Vielleicht hilft's ja noch jemandem...
Viele Grüße,
Katja

1//Setzen des Pivot-Punktes, falls noch 0
2 if(bgv.getPivotY()==0&&bgv.getPivotX()==0){
3 bgv.setPivotX(bgv.getWidth()/2);
4 bgv.setPivotY(bgv.getHeight()/2);
5 }
6 int korrektur=40;
7 //Korrektur des Drehpunktes um die Hälfte von dem Wert der Verschiebung nach der Animation
8 switch((int)Math.abs(winkelneu)){
9 case (90):
10 if(richtung==90){
11 bgv.setPivotY(bgv.getPivotY()+korrektur);
12 }
13 else{
14 bgv.setPivotY(bgv.getPivotY()-korrektur);
15 }
16 break;
17 case (180):
18 if(richtung==90){
19 bgv.setPivotX(bgv.getPivotX()-korrektur);
20 }
21 else{
22 bgv.setPivotX(bgv.getPivotX()+korrektur);
23 }
24 break;
25 case (270):
26 if(richtung==90){
27 bgv.setPivotY(bgv.getPivotY()-korrektur);
28 }
29 else{
30 bgv.setPivotY(bgv.getPivotY()+korrektur);
31 }
32 break;
33 case (360):
34 if(richtung==90){
35 bgv.setPivotX(bgv.getPivotX()+korrektur);
36 }
37 else{
38 bgv.setPivotX(bgv.getPivotX()-korrektur);
39 }
40 break;
41 case (0):
42 if(richtung==90){
43 bgv.setPivotX(bgv.getPivotX()+korrektur);
44 }
45 else{
46 bgv.setPivotX(bgv.getPivotX()-korrektur);
47 }
48 break;
49 }
50
51 bgv.setX(0);
52 bgv.setY(0);

Antworten