我将ValueAnimation
应用于ImageButton
并设置其底部边距但动画似乎无法正常工作。我使用了相同的功能来设置另一个视图元素的填充,它在那里工作得很好。
这是我的代码:
import android.view.ViewGroup;
ImageButton locImgBtn;
ViewGroup.MarginLayoutParams myLocBtnParams;
// In fragment's `onCreateView`
locImgBtn = (ImageButton) rootView.findViewById(R.id.myLocationBtn);
myLocBtnParams = (ViewGroup.MarginLayoutParams) locImgBtn.getLayoutParams();
// The `ValueAnimator` function:
private void marginAnimationForLocationButton(int TO, int FROM) {
ValueAnimator animation = ValueAnimator.ofInt(TO, FROM);
animation.setDuration(1100);
animation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
myLocBtnParams.bottomMargin =
Integer.parseInt(valueAnimator.getAnimatedValue().toString());
}
});
animation.start();
}
该函数会改变ImageButton
的下边距,但不会运行动画。