我正在为TextView
的字体缩放设置动画(例如,从14sp变为22sp),但它只能缩放1 sp,并且会改变样式。不知道如何更正确地解释,但是更改大小时TextView
似乎滞后,但事实并非如此。
我尝试使用标准方法setTextSize(float size)
以及setTextSize(int units, float size)
以像素为单位,但没有任何变化。我也尝试过scaleX()
和scaleY()
方法,但是它们很难适应定义的sp大小。
ValueAnimator sizeAnimation = ValueAnimator.ofFloat(size, sizeEnd);
sizeAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, (Float) animation.getAnimatedValue());
}
});
我期望像我使用scaleX()
和scaleY()
一样平滑缩放比例,但是它仍然可以“缓慢地”缩放
答案 0 :(得分:0)
您还需要设置layoutparams
中的textview
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int val = (Integer) animation.getAnimatedValue();
layoutParams.height = val;
textView.setLayoutParams(layoutParams);
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, (Float) animation.getAnimatedValue());
}
答案 1 :(得分:0)
因此,多亏了Pawel,我想到了一个新的想法,将字体大小设置为sizeEnd
,然后设置size/sizeEnd
的scaleX = scaleY = textView
,其中{ {1}}是应该具有size
的大小,textView
是应该在动画结尾处的大小(目标大小)。
就我而言,它是可行的,但这不是一个完美的解决方案。