2011-10-06 15 views
6

Chcę móc zrobić animację tekstową i zmienić rozmiar tekstu w TextView. Czytałem, że w Androidzie są animacje właściwości, ale jeśli ktoś zna prosty kod, który może to zrobić dla mnie lub przykład gdzieś, będę to głęboko doceniany. Z góry dziękuję!Animacja rozmiaru tekstu TextView

+0

Powiązane [Animacja rozmiaru tekstu Android TextView, a nie całego TextView] (// stackoverflow.com/a/30324368) – Tushar

Odpowiedz

15

scale.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> 

Funkcja w na działalność:

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); 
} 

wydobytego i zmodyfikowanego od here

+1

Dziękuję bardzo mi to pomogło. Ale ja też błąkałem się, czy można to zrobić za pomocą animacji właściwości tekstu, a nie całego widoku tekstu? – Sandra

+0

'scale.xml' jest pod **/res/anim/** – gnB

3

Co powiecie na this link? W szczególności przykłady skali. Zapewnia kod źródłowy i wideo dla kilku różnych typów animacji Androida.

+1

Dziękuję za szybkie r esponse i link. Sprawdzę to. – Sandra

+0

Nie należy polegać na łączu, ponieważ może on spaść w przyszłości. Dodaj odpowiednią część linku do odpowiedzi. –

5
Animation animation=new TranslateAnimation(0,480,0,0); 
animation.setDuration(5000); 
animation.setRepeatMode(Animation.RESTART); 
animation.setRepeatCount(Animation.INFINITE); 
text.startAnimation(animation); 
// applying animation to textview object.. 

Jeśli używasz zdarzenia przycisku, aby wyświetlić animację następnie umieścić kod wewnątrz onClick() inaczej użyjemy metody override onWindowFocusChanged (Logiczna hasFocus), aby rozpocząć animację

1
klasa

Zastosowanie ValueAnimator w android

final float startSize = o; // Size in pixels 
    final float endSize = 30; 
    final int animationDuration = 1000; // Animation duration in ms 

    ValueAnimator animator = ValueAnimator.ofFloat(startSize, endSize); 
    animator.setDuration(animationDuration); 

    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
      float animatedValue = (float) valueAnimator.getAnimatedValue(); 
      tv.setTextSize(animatedValue); 
     } 
    }); 

    animator.start(); 

odnoszą ten link ValueAnimator

Innym rozwiązaniem jest zastosowanie animacji skalę na TextView lub jego układ dominującej

ScaleAnimation scaleAnimation = new ScaleAnimation(0.7f, 1.1f, 0.7f, 1.1f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f, 
        ScaleAnimation.RELATIVE_TO_SELF, 0.5f); 
scaleAnimation.setDuration(600); 
viewZoom.startAnimation(scaleAnimation); 
+0

Skopiowany kod z [ta odpowiedź] (http://stackoverflow.com/a/30324368/2025923) – Tushar

+0

Działa niezbyt gładko nawet na OnePlus3T ( –

Powiązane problemy