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
当按下一个按钮时,我需要为该按钮设置动画....按钮将在按下时缩小一点,在释放时以原始尺寸缩小..(非常像在 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