FloatingView.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:velociraptor 作者:
private void animateViewToSideSlot() {
    Point screenSize = new Point();
    mWindowManager.getDefaultDisplay().getSize(screenSize);

    WindowManager.LayoutParams params = (WindowManager.LayoutParams) mFloatingView.getLayoutParams();
    int endX;
    if (params.x + mFloatingView.getWidth() / 2 >= screenSize.x / 2) {
        endX = screenSize.x - mFloatingView.getWidth();
    } else {
        endX = 0;
    }

    PrefUtils.setFloatingLocation(mService, (float) params.y / screenSize.y, endX == 0);

    ValueAnimator valueAnimator = ValueAnimator.ofInt(params.x, endX)
            .setDuration(300);
    valueAnimator.setInterpolator(new LinearOutSlowInInterpolator());
    valueAnimator.addUpdateListener(animation -> {
        WindowManager.LayoutParams params1 = (WindowManager.LayoutParams) mFloatingView.getLayoutParams();
        params1.x = (int) animation.getAnimatedValue();
        try {
            mWindowManager.updateViewLayout(mFloatingView, params1);
        } catch (IllegalArgumentException ignore) {
        }
    });

    valueAnimator.start();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号