首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setPivotX不适用于Android4.1.1 NineOldAndroids

setPivotX不适用于Android4.1.1 NineOldAndroids
EN

Stack Overflow用户
提问于 2014-10-30 16:17:16
回答 1查看 844关注 0票数 1

我正在使用ImageView动画使用scaleX()。这应该是一个从左到右填充的进度条。它在API 10、18和19上没有问题,但是在API 16上似乎存在setPivotX()方法的问题。我已经在NineOldAndroids: set view pivot中尝试了每一种选择。

代码语言:javascript
复制
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);

代码语言:javascript
复制
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的中心动画。有人能证实这个问题吗?

更新

我也尝试过使用机器人标准动画包:

代码语言:javascript
复制
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 16上仍然不起作用。因此,这个问题不仅与NineOldAndroids库有关,而且还与标准的动画功能有关。

EN

回答 1

Stack Overflow用户

发布于 2014-10-31 09:49:42

在API 16中,将枢轴X设置为0并不是很好。因此,在视图中将枢轴设置到最左边的时候,progressBarFill.setPivotX(1);的效果要好得多。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26658124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档