Android Rebound翻译动画

时间:2015-09-08 13:34:54

标签: android animation

我有一些带有一些图像视图的popupWindow,它们被创建并以编程方式添加到弹出窗口。他们的位置设置为setY()的底线。但是当我使用setEndValue用spring进行动画处理时,图像从0变为setEndValue,而不是从它的初始位置开始。 如何解决这个问题?

public SharePostPopupWindow(View parentView) {
        super(MATCH_PARENT, MATCH_PARENT);
        this.context = parentView.getContext();
        this.parentView = parentView;

        AndroidBlaBlaApplication.component(context).inject(this);
        setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        FrameLayout container = new FrameLayout(context);

        socialViews = new ArrayList<>();
        socials = new ArrayList<>();

        shadow = new View(context);
        shadow.setId(R.id.share_view_shadow);
        shadow.setBackgroundColor(Color.BLACK);
        shadow.setClickable(true);
        shadow.setAlpha(0.5f);
        shadow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                bus.post(new ShadowClickedEvent());
                spring.setEndValue(initialPosition / 2 - Utils.convertDpToPixel(imageSize, context));
                dismiss();
            }
        });
}

public void show() {
        Utils.hideKeyboard(context, getContentView());
        createButtons();

        SpringSystem springSystem = SpringSystem.create();
        spring = springSystem.createSpring();

        SpringConfig slowConfig = new SpringConfig(TENSION, DAMPER);
        spring.setSpringConfig(slowConfig);

        spring.addListener(new SimpleSpringListener() {
            @Override
            public void onSpringUpdate(Spring spring) {
                float value = (float) spring.getCurrentValue();

                for (int i = 0; i < socialViews.size(); i++) {
                    if (i % 2 != 0) {
                        socialViews.get(i).setY(value);
                    }
                }
            }
        });

        showAtLocation(parentView, Gravity.CENTER_VERTICAL, 0, 0);
        getContentView().setAlpha(1f);

    }

0 个答案:

没有答案