What's the correct way to animate a View from one coordinate to another?

后端 未结 3 1176
夕颜
夕颜 2021-02-08 04:09

I would like to do the following. I have a set of buttons that have some icons on them. When the user taps one, I would like to introduce a new View that starts in the same coo

3条回答
  •  太阳男子
    2021-02-08 04:27

    I am just add my view on center position on frame layout and translation my view to x-axis and y-axis. Try below code:-

    Add image view on framelayout

        imgHeart = new ImageView(getBaseContext());
        imgHeart.setId(R.id.heartImage);
        imgHeart.setImageResource(R.drawable.material_heart_fill_icon);
        imgHeart.setLayoutParams(new FrameLayout.LayoutParams(50, 50, Gravity.CENTER));
        mainFrameLaout.addView(imgHeart);
    

    Add animation on image view

           imgHeart.animate()
                .scaleXBy(6)
                .scaleYBy(6)
                .setDuration(700)
                .alpha(2)
                .setListener(new Animator.AnimatorListener() {
                    @Override
                    public void onAnimationStart(Animator animation) {
    
                    }
    
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        imgHeart.animate()
                                .scaleXBy(-6f).scaleYBy(-6f)
                                .alpha(.1f)
                                .translationX((heigthAndWidth[0] / 2) - minusWidth)
                                .translationY(-((heigthAndWidth[1] / 2) - minusHeight))
                                .setDuration(1000)
                                .setListener(new Animator.AnimatorListener() {
                                    @Override
                                    public void onAnimationStart(Animator animation) {
                                    }
    
                                    @Override
                                    public void onAnimationEnd(Animator animation) {
                                    // remove image view from framlayout
                                    }
                                    @Override
                                    public void onAnimationCancel(Animator animation) {
                                    }
    
                                    @Override
                                    public void onAnimationRepeat(Animator animation) {
                                    }
                                }).start();
                    }
    
                    @Override
                    public void onAnimationCancel(Animator animation) {
    
                    }
    
                    @Override
                    public void onAnimationRepeat(Animator animation) {
    
                    }
                }).start();
    

提交回复
热议问题