2013-11-12 4 views
0

В моем приложении для Android у меня есть пять изображений, когда я нажимаю любую из этих анимаций. Я установил анимацию масштабирования и Zoomin для всех изображений. После завершения анимации выбранный вид изображения невидим. После того, как изображение будет невидимым, когда я нажму на это место просмотра изображения, он снова запустит анимацию, и изображение станет невидимым.Как скрыть изображения после окончания анимации в андроиде

Zoom-В Анимация:

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

Отдалиться Анимация

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

zoomin =AnimationUtils.loadAnimation(this, R.anim.zoom); 
zoomout=AnimationUtils.loadAnimation(this, R.anim.zoomout); 

ImageView v2 = (ImageView) findViewById(R.id.image2); 

    v2.setOnClickListener(new View.OnClickListener() 
    { 
     @Override public void onClick(View v) 
     { 

      v2.setAnimation(zoomin); 
      v2.startAnimation(zoomin); 
      v2.setAnimation(zoomout); 
      v2.startAnimation(zoomout); 
      v2.clearAnimation(); 
     } 
    }); 

ответ

7

Добавьте этот код на анимации объектов:

animation.setAnimationListener(new AnimationListener() 
     { 

      @Override 
      public void onAnimationStart(Animation animation) { } 

      @Override 
      public void onAnimationRepeat(Animation animation) { } 

      @Override 
      public void onAnimationEnd(Animation animation) 
      { 
       v2.setImageResource(R.drawable.some_transparent_image); 

      } 
     }); 
+1

он упомянул, что если он щелкнул по местоположению этого изображения после исчезновения, он должен появиться снова и оживить. Если у вас возникла видимость, как действие может быть выполнено снова? –

+0

Вы можете делать все, что угодно, в onAnimationEnd. Возможно, попробуйте заменить фон на прозрачный, если вы хотите, чтобы изображение по-прежнему было доступно. –

+0

Да, это должно быть решением. –

0

вы должны обращаться прослушиватель анимации для этого аниматора ция.

zoomin.setAnimationListener(new AnimationListener() 
    { 

     @Override 
     public void onAnimationStart(Animation animation) { } 

     @Override 
     public void onAnimationRepeat(Animation animation) { } 

     @Override 
     public void onAnimationEnd(Animation animation) 
     {    
      v2.setVisibility(View.GONE); 
     } 
    }); 
0

Вы должны использовать Transparent Image Все, что вам нужно сделать, это когда ваша анимация заканчивается вам необходимо установить прозрачное изображение в качестве фона/ОПЗА, что изображения, таким образом заменяя предыдущий.

Изменение Видимость зрения не решит вашу проблему

v2.setVisibility(View.GONE); 
v2.setVisibility(View.INVISIBLE); 

Как и выше свинца, чтобы сделать ваш взгляд, не кликабельны, и вы не сможете нажать кнопку еще раз.

2

Эта проблема возникает из-за того, что вы добавили android: fillAfter = "true" как в XML-файлах анимации.

Либо удалить «android: fillAfter =« true »из обоих XML-файлов, либо сохранить« android: fillAfter = «false» в обоих файлах.

0

Вы можете просто изменить прозрачность слоя.

v2.setAlpha(0f); 
Смежные вопросы