android 如何显示一个简单的弹窗进出动效
程序员文章站
2022-05-04 20:01:30
...
大家好,我是梦辛工作室的灵,又不知道过了多久,最近每天都在忙工作,感觉没什么好写的了,最近突然心血来潮,想写一个安卓动画实现的专栏:
先来写一个简单的弹窗进出动效吧:
先再res文件夹下创建一个anim 文件夹,创建一个,dialog_in.xml:
<?xml version="1.0" encoding="utf-8"?>
<!--interpolator:差值器,表示动画运行时的时间正常方式,fillAfter:表示动画停留在最后运动的结果-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/decelerate_interpolator">
<!--透明度:表示透明0 到 不透明 1之间 变换-->
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" >
</alpha>
<!--缩放标签:fromXScale,toXScale表示水平缩放的起始值和结束值;fromYScale,toYScale竖直方向的缩放起始值和结束值。
pivotX,pivotY,表示缩放动画效果的基准点x,y轴
-->
<scale
android:fromXScale="0.4"
android:fromYScale="0.4"
android:toXScale="1.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%">
</scale>
</set>
然后在创建一个出场动画,和入场动画反过来即可 dialog_out_.xml:
<?xml version="1.0" encoding="utf-8"?>
<!--interpolator:差值器,表示动画运行时的时间正常方式,fillAfter:表示动画停留在最后运动的结果-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/decelerate_interpolator">
<!--透明度标签:表示透明0到不透明1之间的变换-->
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0" >
</alpha>
<!--缩放标签:fromXScale,toXScale表示水平缩放的起始值和结束值;fromYScale,toYScale竖直方向的缩放起始值和结束值。
pivotX,pivotY,表示缩放动画效果的基准点x,y轴
-->
<scale
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="0.4"
android:toYScale="0.4"
android:pivotX="50%"
android:pivotY="50%">
</scale>
</set>
最后是代码调用了:
final Animation anim = AnimationUtils.loadAnimation(this, R.anim.dialog_show_anim);
anim.setDuration(300);
anim.setFillAfter(true);
view.startAnimation(translate);
translate.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
view.clearAnimation();
//记住要在动画结束后清除动画,不然即使设置 View.GONE,依然会触发点击事件
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
然后在你的方法里面需要弹出时,加载入场动画即可,关闭时加载出场动画即可
上一篇: 安卓特效实现之添加商品抛物线动画
下一篇: Android与Unity的交互