Używam NineOldAndroids 2.4.0 do animowania obiektów głównie do przemieszczania i transformacji sterowania. Na Androidzie 4.0 i nowszych wersjach wszystko działa dobrze, ale w poprzednich wersjach (2.1, 2.3) po tym, jak elementy animacji nie będą koncentrować się i nie będą klikać. Kod Próbka:NineOldAndroidy, brak widoku po rotacji lub ruchu
View v = findViewById(R.id.button1);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Click!", Toast.LENGTH_SHORT).show();
}
});
ObjectAnimator moveDown = ObjectAnimator.ofFloat(v, "translationY", 100f);
moveDown.setDuration(5000);
moveDown.start();
jest to błąd w bibliotece czy coś robię źle? Jeśli ta biblioteka nie obsługuje wszystkich funkcji "API animacji Honeycomb", to w moim projekcie będzie ona bezużyteczna.
Cytat na blogu programistów Androida z "Animation in Honeycomb": Ponieważ system faktycznie zmienia właściwości obiektów docelowych, same obiekty są zmieniane, a nie tylko ich wygląd. Tak więc ten przycisk, który przesuwasz, jest właściwie przenoszony, a nie tylko narysowany w innym miejscu. Możesz nawet kliknąć w jego animowanej lokalizacji. Śmiało i kliknij to; Wyzywam cię.
Fragment masz działa dobrze dla mnie NineOldAndroid na 2,3. Upewnij się, że zaimportowałeś plik com.nineoldandroids.animation.ObjectAnimator, a nie android.animation.ObjectAnimator. –
Tak, zaimportowałem com.nineoldandroids.animation.ObjectAnimator. Czy jesteś pewien, że możesz nacisnąć przycisk po ruchu? Jak już wspomniałem wcześniej, to nie działa dla <3.0, przetestowałem to na emulatorze: 2.1.2.2, 2.3.3 i na prawdziwym urządzeniu (2.3.7) – avesha
Mam ten sam problem. Czy próbowałeś użyć translateYBy() lub x()? – Mario