2010-08-03 14 views
8

Mam 2 ImageView s, które tłumaczę z góry ekranu na dół. te widoki są infalted z xml i animacja jest dodawana z kodu java. Animacja działa idealnie, ale koddodany w kodzie java wydaje się nie działać. Użyłem atrybutu animacji, aby sprawić, że iamge pozostaną w swoim przybyciu po przetłumaczeniu, ale te obrazy nie są już klikalne ... Jednak ich pozycja przed tłumaczeniem pozostaje klikalna ... Nie widzę logiki to. Czy ktoś mógłby mi dać jakąś radę na ten temat?TranslateAnimated ImageView nie można kliknąć po animacji [Android]

+0

Ok, znalazłem moją odpowiedź tutaj: http://stackoverflow.com/questions/2125694/przycisk-android-nie odpowiada-po-animacji, teraz wystarczy ustawić poprawnie jego parametry, aby uzyskać właściwą pozycję ... – Sephy

+0

Jednak nie jest to zgodne z setFillAfter. Dodaję, aby usunąć, aby działało. – Sephy

+0

Miałem ten problem i rozwiązałem go po przeprowadzeniu pewnych badań. [Tutaj można znaleźć odpowiedź] [1] [1]: http://stackoverflow.com/questions/18333269/how-to-set-button-clickable-while-animating-on -android/18509197 # 18509197 – SteBra

Odpowiedz

14

Dzieje się tak, ponieważ animacje wpływają tylko na rysunek widgetu. Jednak nie ma to wpływu na prawdziwą lokalizację - jest nadal w poprzednim -.

Aby rozwiązać ten problem, należy zaktualizować parametry układu z ImageView ręcznie instalując detektor animacji w następujący sposób:

Animation.setAnimationListener(new AnimationListener() { 
     public void onAnimationStart(Animation arg0) { 

     } 

     public void onAnimationRepeat(Animation arg0) { 
      //TODO Auto-generated method stub 
     } 

     public void onAnimationEnd(Animation arg0) { 
      android.widget.LinearLayout.LayoutParams params = new LayoutParams(
      android.widget.LinearLayout.LayoutParams.FILL_PARENT, 
      android.widget.LinearLayout.LayoutParams.WRAP_CONTENT); 
      params.topMargin = addLocationButton.getTop()-100; 

      ImageView.setLayoutParams(params); 
     } 
     }); 
+1

Nic dobrego, ponieważ po animacji w onAnimationEnd, gdy obraz uzyska pozycję od "setLayoutParams (params);" wtedy widzę migotanie. Dodam, że trudno jest ustawić topMargin od procentu własności toYDelta – oscaroxy

+4

celu usunięcia migotania można użyć \t \t \t \t \t \t \t animation.reset(); .clearAnimation(); – slott

Powiązane problemy