2015-12-04 5 views
12

У меня есть TextView, и я пытаюсь добавить в него анимацию. Мой код возвращает null, и я не понимаю, почему.Как добавить анимацию в текстовое представление в android

Вот моя реализация

Это fade_in.xml

<alpha 
      xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" 
      android:duration="1000" 
      android:fromAlpha="0.0" 
      android:interpolator="@android:anim/accelerate_interpolator" 
      android:toAlpha="1.0"/> 

и вот как им, используя его в соответствующей деятельности

tv= (TextView)findViewById(R.id.textView); 
//-- the below line is returning null 
      animation = AnimationUtils.loadAnimation(this,R.anim.fade_in); 

      animation.setAnimationListener(new Animation.AnimationListener() { 
       @Override 
       public void onAnimationStart(Animation animation) { 
       tv.setVisibility(View.VISIBLE); 
       } 

       @Override 
       public void onAnimationEnd(Animation animation) { 
        Intent it = new Intent(SplashActivity.this, MainActivity.class); 
        startActivity(it); 
       } 

       @Override 
       public void onAnimationRepeat(Animation animation) { 

       } 
      }); 

      tv.startAnimation(animation); 
+0

Укажите журнал ошибок. –

+0

, пожалуйста, сообщите нам ошибку logcat. –

ответ

10

Android TextView Annimation пример

XML

<?xml version="1.0" encoding="utf-8"?> 

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<scale 
     android:fromXScale="1.0" 
     android:fromYScale="1.0" 
     android:toXScale="2.0" 
     android:toYScale="2.0" 
     android:duration="3000"></scale> 
</set> 

Код

private void RunAnimation() 
{ 
    Animation a = AnimationUtils.loadAnimation(this, R.anim.scale); 
    a.reset(); 
    TextView tv = (TextView) findViewById(R.id.firstTextView); 
    tv.clearAnimation(); 
    tv.startAnimation(a); 
} 

Для Подробнее:

http://chiuki.github.io/advanced-android-textview/#/5

http://www.hascode.com/2010/09/playing-around-with-the-android-animation-framework/

0

Вам нужно setAnimation в вашем TextView

Пример:

tv.setAnimation(animation); 
+0

Я пробовал это тоже .. но все же он говорит то же самое Вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод 'void android.widget.TextView.setAnimation (android.view.animation.Animation) 'на нуле – DeepakKUMARYadav

1

Ваш TextView идентификатор правильно ?? Сначала проверьте, правильно ли вы получаете свой текстовый код в своем приложении.

+0

На основании комментария в другом ответе - нет, это неверно: «java.lang.NullPointerException: попытка вызвать виртуальный метод» void android.widget.TextView.setAnimation (android.view.animation.Animation)' на нулевом "это должен быть принятый ответ – WFranczyk

+0

@WFranczyk Что вы хотите сказать? –

1

Вы можете загрузить анимацию из класса AnimationUtils в Android и установить его в текстовое представление в Android.

textview.startAnimation(AnimationUtils.loadAnimation(c, android.R.anim.fade_in)); 

и вы можете остановить анимацию, используя,

textview.clearAnimation(); 
0

Используйте Аниматор/AnimatorSet Анимация является унаследованным кодом