Я анимирую ImageView
используя scaleX()
. Предполагается, что это будет индикатор выполнения, который заполняется слева направо. Он работает без проблем на API 10, 18 и 19. Но на API 16, похоже, проблема с методом setPivotX()
. Я пробовал каждый вариант в NineOldAndroids: set view pivot.setPivotX не работает на android 4.1.1 NineOldAndroids
final ImageView progressBarFill = (ImageView) getView().findViewById(R.id.progressbarImageFill);
//...
ViewHelper.setPivotX(progressBarFill, 0);
AnimatorProxy.wrap(progressBarFill).setPivotX(0);
animate(progressBarFill).setDuration(1000).scaleX(0.25f);
и
AnimatorSet set = new AnimatorSet();
set.playTogether(
ObjectAnimator.ofFloat(progressBarFill, "scaleX", 0f, 0.25f)
);
AnimatorProxy.wrap(progressBarFill).setPivotX(0.0f);
ViewHelper.setPivotX(progressBarFill, 0f);
set.setDuration(1000).start();
Анимация работает, но он оживляет от центра ImageView
. Может ли кто-нибудь подтвердить эту проблему?
UPDATE
Я пытался использовать андроид стандартного пакет анимации, а также:
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
progressBarFill.setVisibility(View.VISIBLE);
progressBarFill.setPivotX(0);
progressBarFill.setPivotY(0);
AnimatorSet set = new AnimatorSet();
set.playTogether(
ObjectAnimator.ofFloat(progressBarFill, "scaleX", 0f, 0.25f)
);
set.setDuration(2000).start();
}
Но до сих пор не работает на андроид API 16. Таким образом, проблема не только связанный с NineOldAndroids но и стандартную функцию анимации.