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);