animation of TextView's text size

前端 未结 3 528
小鲜肉
小鲜肉 2020-12-14 11:42

I want to be able to do a text animation and change the size of the text in a TextView. I read that there are property animations in android but if someone knows a simple co

相关标签:
3条回答
  • 2020-12-14 12:07

    Use ValueAnimator class in the 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();
    

    refer this link ValueAnimator

    Another solution is that apply scale animation on Textview or its parent layout

    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 讨论(0)
  • 2020-12-14 12:13

    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>
    

    A function into an Activity:

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

    extracted and modified from here

    0 讨论(0)
  • 2020-12-14 12:13
    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..
    

    If you are using button event to show animation then put the code inside onClick() otherwise use override method onWindowFocusChanged(boolean hasFocus) to start animation

    0 讨论(0)
提交回复
热议问题