长按一个按钮只需将 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
- 我有一个按钮,当长按按钮时 - 将图像视图向左、右、上、下角移动。
- 释放按钮后,return图像视图回到上一个位置。
请帮我实现这个。提前致谢!
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);
- 我有一个按钮,当长按按钮时 - 将图像视图向左、右、上、下角移动。
- 释放按钮后,return图像视图回到上一个位置。
请帮我实现这个。提前致谢!
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);