2014-10-30 23 views
1

我使用scaleX()ImageView設置了動畫。這應該是一個從左到右填充的進度條。它在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(); 
} 

但仍是在Android API 16.因此,問題不僅關係到NineOldAndroids不工作庫,但標準的動畫功能也是如此。

回答

3

將數據透視表設置爲0並不會在API 16中很好地發揮作用。因此,將視圖progressBarFill.setPivotX(1);中的數據透視表設置爲最左邊的效果好得多。