2017-11-21 5 views
-1

Ich möchte erhöhen/verringern die Textgröße in Textansicht, aber nicht von .setTextSize() Methode. Wie wenn ich auf einen Knopf klicke, muss die Größe von einem zum anderen sanft und nicht abrupt wechseln. Der Übergang muss sichtbar sein, wenn er zunimmt, so dass eine gute Erfahrung erzielt wird. Ich habe versucht, eine Schleife zu verwenden, bei der sich die Größe durch kleine und kleine Bits ändert, aber das ist auch schnell sichtbar. Also bitte jemand schlägt mir eine Methode vor, dies zu tun. Ich bin nur ein Anfänger in AndroidAndroid- Erhöhung der Textgröße in Textansicht reibungslos

+0

Können Sie nach Ihren Code aus, was Sie bisher versucht haben? – tarheel

Antwort

1

Dies könnte mit einem ValueAnimator erreicht werden.

Try this:

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

Verwenden Sie diesen Code in auf klicken listner der Taste, wo Sie diese erreichen wollen.

0

können Sie führen dies mit View Animation. Sie es aus here

schaffen eine textanim.xml innerhalb Tour res/anim Ordner beziehen. (Fügen Sie hier den Anim-Ordner zuerst in der Res-Datei hinzu, falls nicht erstellt.)

Ihr textanim.xml sollte so aussehen.

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

Umzug in die zugehörigen Java-Datei auf (innerhalb Ihrer Aktivität), müssen Sie diese diese Animation wie verwenden,

TextView mT = (TextView) findViewById(R.id.yourTextViewId); 
Animation myAnim = AnimationUtils.loadAnimation(this, R.anim.textanim); 
mText.startAnimation(myAnim); 
Verwandte Themen