2017-11-21 8 views
-1

のテキストサイズでは、.setTextSize()の方法では増減します。ボタンをクリックしたときと同じように、サイズはスムーズに変化し、突然変化しなくてはなりません。良好なUIの経験が得られるように、トランジションが増加するにつれてその遷移が見えるようにする必要があります。私は、小さなビットでサイズが変わるループを使用しようとしましたが、それも素早く見えるようにしています。だから誰かが私にこれを行う方法を提案してください。私はAndroidの初心者ですAndroid-テキストビューでのテキストサイズの増加がスムーズに

+0

は、あなたがこれまでにしようとしているものから、あなたのコードを投稿することができますか? – tarheel

答えて

1

これはValueAnimatorで実現できました。

はこれを試してみてください:

final TextView tv = new TextView(getApplicationContext()); 
Button btnPlay = (Button) findViewById(R.id.btnPlay); 
btnPlay.setOnClickListener(MainActivity.this); 


final float startSize = 42; // Size in pixels 
final float endSize = 12; 
final int animationDuration = 600; // 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); 
    } 
}); 

@Override 
public void onClick(View view) 
{ 
    if(view == btnPlay) 
    { 
     animator.start(); 
    } 
} 

あなたがこれを達成したい場合は、ボタンのクリックのリスナー上でこのコードを使用してください。

0

あなたは、あなたがツアーres/animフォルダ内の1 textanim.xmlを作成here

からそれを参照する必要がありView Animation. を使用して、これを行うことができます。 (作成されていない場合は、resファイルの最初にanimフォルダを追加してください)

textanim.xmlはこのようになります。

(あなたの活動の内側に)関連するJavaファイルに移る
<set android:shareInterpolator="false"> 
    <scale 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:fromXScale="1.0" 
     android:toXScale="1.4" 
     android:fromYScale="1.0" 
     android:toYScale="0.6" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:fillAfter="false" 
     android:duration="700" /> 
    <set android:interpolator="@android:anim/decelerate_interpolator"> 
     <scale 
      android:fromXScale="1.4" 
      android:toXScale="0.0" 
      android:fromYScale="0.6" 
      android:toYScale="0.0" 
      android:pivotX="50%" 
      android:pivotY="50%" 
      android:startOffset="700" 
      android:duration="400" 
      android:fillBefore="false" /> 
     <rotate 
      android:fromDegrees="0" 
      android:toDegrees="-45" 
      android:toYScale="0.0" 
      android:pivotX="50%" 
      android:pivotY="50%" 
      android:startOffset="700" 
      android:duration="400" /> 
    </set> 
</set> 

、あなたはこのように、このアニメーションを使用する必要があり、

TextView mT = (TextView) findViewById(R.id.yourTextViewId); 
Animation myAnim = AnimationUtils.loadAnimation(this, R.anim.textanim); 
mText.startAnimation(myAnim); 
関連する問題