就是仿照QQ窗口的抖动效果,在项目的res下创建anim文件夹,再创建两个xml文件:cycle.xml 、 myanim.xml
cycle.xml:
<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator
xmlns:android="http://schemas.android.com/apk/res/android"
android:cycles="2"/>
myanim.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/cycle">
<translate
android:fromXDelta="0"
android:toXDelta="-10"
android:fromYDelta="0"
android:toYDelta="-10"
android:duration="300"/>
<translate
android:fromXDelta="0"
android:toXDelta="10"
android:fromYDelta="0"
android:toYDelta="-10"
android:startOffset="300"
android:duration="300"/>
<translate
android:fromXDelta="0"
android:toXDelta="-10"
android:fromYDelta="0"
android:toYDelta="10"
android:startOffset="600"
android:duration="300"/>
<translate
android:fromXDelta="0"
android:toXDelta="10"
android:fromYDelta="0"
android:toYDelta="10"
android:startOffset="900"
android:duration="300"/>
</set>
然后就是在activity里面使用这个动画效果了:
Animation anim = AnimationUtils.loadAnimation(AnimActivity.this, R.anim.myanim);
myButton.startAnimation(anim);
经过优化,把myanim.xml设置为下面的更加像QQ弹窗:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/cycle" >
<translate
android:duration="100"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="-10" />
<translate
android:duration="100"
android:fromXDelta="0"
android:fromYDelta="0"
android:startOffset="50"
android:toXDelta="-10"
android:toYDelta="0" />
<translate
android:duration="100"
android:fromXDelta="0"
android:fromYDelta="0"
android:startOffset="100"
android:toXDelta="0"
android:toYDelta="10" />
<translate
android:duration="100"
android:fromXDelta="0"
android:fromYDelta="0"
android:startOffset="150"
android:toXDelta="10"
android:toYDelta="0" />
</set>