Android-setDuration不工作? ObjectAnimator

时间:2015-07-22 23:48:44

标签: android animation

我正在尝试使用ObjectAnimator向下移动ImageView。 setDuration()方法似乎不会影响动画的持续时间。我不能在XML中设置这个动画,因为我想动态地播放它。

    ObjectAnimator an= ObjectAnimator.ofFloat(img, View.TRANSLATION_Y, 0, 100);
    an.setDuration(5000);
    an.start();

在这里对主题进行排序,但是说我想在彼此之后玩多个ObjectAnimation,有没有办法做到这一点?我看过Animator集,但我不确定它是否会像Object Animator一样移动实际对象,而不是像TranslateAnimation那样出现。

提前致谢!

2 个答案:

答案 0 :(得分:7)

也许您正在测试三星设备?在这种情况下,在开发人员选项下,默认情况下会将选项动画人员持续时间刻度设置为关闭。如果切换到正常值,则可以看到动画。

希望得到这个帮助。

答案 1 :(得分:0)

LayoutInflater inflater =(LayoutInflater)                 getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    final View popupView = inflater.inflate(R.layout.loading_popup, null,false);
    popup = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, true);
    popup.setContentView(popupView);
    popup.setOutsideTouchable(true);
    ImageView loadingPlane=(ImageView)popupView.findViewById(R.id.loading_plane);

    RotateAnimation anim = new RotateAnimation(0.0f, 360.0f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
            0.5f);
    // Step 2:  Set the Animation properties
    anim.setInterpolator(new LinearInterpolator());
    //anim.setRepeatCount(Animation.INFINITE);

    anim.setRepeatCount(-1);
    anim.setDuration(1500);
    loadingPlane.startAnimation(anim);

    findViewById(R.id.flyinstyle).post(new Runnable() {
        public void run() {
            popup.showAtLocation(findViewById(R.id.flyinstyle), Gravity.CENTER, 0, 0);
        }
    });