长按一个按钮只需将 4 个图像移动到左、右、上、下角,然后松开按钮将图像设置在相同位置-Android

A button Long Pressed just move the 4 Images to left ,right ,top,bottom corners then, Release the button set the images in same position-Android

  1. 我有一个按钮,当长按按钮时 - 将图像视图向左、右、上、下角移动。
  2. 释放按钮后,return图像视图回到上一个位置。
  3. 请帮我实现这个。提前致谢!

    Mainactivity.java

     floatingActionButton.setOnLongClickListener(new 
     View.OnLongClickListener() 
      {
            @Override
            public boolean onLongClick(View v) {
    
                Iv1.startAnimation(animFadein1);
                Iv2.startAnimation(animFadein2);
                |Iv3.startAnimation(animFadein3);
                Iv4.startAnimation(animFadein4);
                System.out.println("in PRESSED");
                return true; 
            }
        });
    
        floatingActionButton.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch(event.getAction()){
                    case MotionEvent.ACTION_UP:
                    {
                        Toast.makeText(getApplicationContext(), "Rlesed", Toast.LENGTH_SHORT).show();
    
                        return true; 
                    }
                }
                return false;
            }
        });
    

请看示例图片:

topleft.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">;
    <translate
        android:duration="500"
        android:fromXDelta="-5%"
        android:fromYDelta="-5%"
        android:toXDelta="0%"
        android:toYDelta="00%"
        android:zAdjustment="bottom"></translate>
</set>

topright.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">;
    <translate
        android:duration="500"
        android:fromXDelta="5%"
        android:fromYDelta="-5%"
        android:toXDelta="0%"
        android:toYDelta="00%"
        android:zAdjustment="bottom"></translate>
</set>

我会用 ObjectAnimator 这样做:

val animatorSet = new AnimatorSet()
val moveDownAnimator = ObjectAnimator.ofFloat(imageView, View.TRANSLATION_Y, deltaY) // move down
val moveUpAnimator = ObjectAnimator.ofFloat(anotherImageView, View.TRANSLATION_Y, -deltaY) // move up
...
animatorSet.playTogether(moveDownAnimator, moveUpAnimator,...);
animatorSet.setDuration(ANIMATION_DURATION);
animatorSet.start();

与发布类似:

val releaseAnimator = ObjectAnimator.ofFloat(imageView, View.TRANSLATION_Y, 0);