2013-07-28 12 views
19

Mam kod normalnego powiększania i pomniejszania animacji między dwiema czynnościami, ale chcę czegoś innego. Mam pięć przycisków na mojej pierwszej aktywności, jeśli kliknę pierwszy przycisk, a następnie powiększenie będzie zaczynać się od pozycji pierwszego przycisku zamiast powiększania od środka. Proszę pomóż mi.powiększanie i pomniejszanie animacji w Androidzie

EDYCJA: Powiększenie powinno rozpoczynać się od przycisku, który kliknąłem jako środek.

+0

Twoje pytanie nie jest całkiem jasne, chcesz powiększyć od środka układu, lub jest to, że animacja nie działa poprawnie? – kabuto178

+0

Mam pięć przycisków po kliknięciu dowolnego przycisku, który zostanie rozwinięty i rozpocznie następne działanie. – jagdish

+0

Nie chcesz rozpocząć nowej aktywności? – kabuto178

Odpowiedz

2

Chyba trzeba

  • Ustaw "in" i "out" animacji
  • Utwórz folder RES/anim
  • opisy animacja oddany do folderu res/anim

    obiektu. setInAnimation (AnimationUtils.loadAnimation (this, R.anim.zoom_enter)); object.setOutAnimation (AnimationUtils.loadAnimation (this, R.anim.zoom_exit));

Można użyć android animacje przykładowe SDK dostarczonych przez Google na licencji Apache 2.0

lub skierować ten, który wykorzystuje skalowanie powiększanie oparciu, który jest łatwiejszy niż byłego

http://developer.android.com/training/animation/zoom.html

29

Można użyj tej metody po uruchomieniu polecenia, aby rozpocząć nową działalność,

startActivity(intent); 
overridePendingTransition(animation_in_goes_here,animation_out_goes_here); 

Następnie możesz zamienić animacje powyżej, zastępując animation_in_goes_here zasobami animacji potrzebnymi do nowo utworzonego działania i zastępując animation_out_goes_here zasobem animacji dla aktywności, z której wychodzisz. Zapewni to efekty przełączania.

zoom_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" > 
    <scale 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="1000" 
    android:fromXScale="1" 
    android:fromYScale="1" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toXScale="3" 
    android:toYScale="3" > 
    </scale> 
</set> 

zoom_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" > 
    <scale 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="1000" 
    android:fromXScale="1.0" 
    android:fromYScale="1.0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toXScale="0.5" 
    android:toYScale="0.5" > 
    </scale> 
</set> 

Nadzieja ta pomogła odpowiedzieć na to pytanie.

+0

thnax ... ale animacja nie jest właściwa :( – jagdish

+0

Jak to, co wydaje się być problemem? – kabuto178

+0

Ta animacja nie jest właściwa, nie ma przejścia z działaniem, które opuszczam. to, najpierw powiększa, a następnie wraca do normalności, nic nie dzieje się z działaniem, które opuszczam. Czy istnieje jakakolwiek zależność, którą tracę?Ta odpowiedź uzyskała 8 kciuków, więc musi być poprawna w kontekście. –

2

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="1000" 
    android:fromXScale="0" 
    android:fromYScale="0" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:toXScale="0.5" 
    android:toYScale="0.5"> 

</scale> 


<scale xmlns:android="http://schemas.android.com/apk/res/android" 

    android:duration="1000" 
    android:fromXScale="2.1" 
    android:fromYScale="2.1" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:startOffset="3000" 
    android:toXScale="0" 
    android:toYScale="0"> 

</scale> 

+0

utwórz zoom.xml przydaje się do pomniejszania i powiększania – bhoomika