按下按钮的缩小动画在android中

时间:2015-03-09 08:05:17

标签: android xml animation android-animation

当按下一个按钮时,我需要设置该按钮的动画....按钮将在释放后按下和放置原始尺寸时缩小..(非常像火种)

我用这个:

<?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>

但是根据我的需要它不起作用,我需要按钮保持很小,直到按下它。在释放后变得正常。

1 个答案:

答案 0 :(得分:7)

你可以创建第二个动画来返回未被点击的状态,如下所示:

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

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

yourButton.startAnimation(yourAnimation);

在MotionEvent.ACTION_DOWN内 然后致电

yourButton.clearAnimation();

在MotionEvent.ACTION_UP中