Нажмите кнопку Long Pressed, просто переместите 4 изображения влево, вправо, вверх, вниз, затем отпустите кнопку, чтобы установить изображения в том же положении - Android - PullRequest
0 голосов
/ 11 сентября 2018
  1. У меня есть кнопка, когда кнопка долго нажата - немного сдвиньте представление изображения влево, вправо, вверх, вниз.
  2. После отпускания кнопки верните представление изображения впредыдущая позиция.
  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;
            }
        });
    

Пожалуйста, смотрите пример изображения:

https://i.stack.imgur.com/nlxqI.png

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>

1 Ответ

0 голосов
/ 18 сентября 2018

Я бы сделал это с 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);
...