android 按下按钮时的缩小动画

Zoomout animation on button press in android

当按下一个按钮时,我需要为该按钮设置动画....按钮将在按下时缩小一点,在释放时以原始尺寸缩小..(非常像在 tinder 中)

我用这个:

<?xml version="1.0" encoding="utf-8"?>

<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.9"
    android:toYScale="0.9" >
</scale>

但它无法根据我的需要工作,我需要按钮在按下之前保持较小。并在发布时变得正常。

您可以像这样创建第二个返回未点击状态的动画:

<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fillAfter="true" 
    android:fromXScale="0.9"
    android:fromYScale="0.9"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="1.0"
    android:toYScale="1.0" >
</scale>

然后:

yourButton.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
          // start your first zoom out Animation here
                    break;

                case MotionEvent.ACTION_UP:
         // start zoom in animation which returns to original state
                 break;
            }
            return false;
        }
    });

不要忘记将 Animations 中的 fillAfter 设置为 true,否则它会在持续时间结束后快速恢复到原始状态。 或者如果你不想要第二个动画,你可以调用

yourButton.startAnimation(yourAnimation);

里面MotionEvent.ACTION_DOWN 然后调用

yourButton.clearAnimation();

里面MotionEvent.ACTION_UP