仿 58 同城的退出动画

一 实例说明

实例说明.png

二 实现步骤

   1. 在 app\res 下面新建一个 anim 文件
   2. 在 anim 下创建 XML 文件。
   3. 重写 onKeyDown() 方法,该方法判断是否单击 “返回” 按钮,如果单击则显示带动画效果的对话框。

dialog_enter.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromXDelta="-100%"
    android:fromYDelta="-100%">
</translate>

dialog_exit.xml 文件

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:toXDelta="100%"
    android:toYDelta="100%"
    android:fromYDelta="0">
</translate>

MainActivity

  @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK){
            //创建对话框
            AlertDialog dlg = new AlertDialog.Builder(this).create();
            dlg.show();                         //显示对话框
            Window window = dlg.getWindow();    //获取对话框窗口
            window.setGravity(Gravity.CENTER);  //设置对话框中心位置
            window.setWindowAnimations(R.style.mystyle);    //添加动画
            window.setContentView(R.layout.dialog_layout);  //设置对话框布局
            button = window.findViewById(R.id.dialog_button);//点击事件
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Log.d("MainActivity", "onClick: ");
                }
            });

        }
        return super.onKeyDown(keyCode, event);
    }

translate 位置转移动画效果
整型值:
fromXDelta 属性为动画起始时 X坐标上的位置
toXDelta 属性为动画结束时 X坐标上的位置
fromYDelta 属性为动画起始时 Y坐标上的位置
toYDelta 属性为动画结束时 Y坐标上的位置
注意:
没有指定,
默认是以自己为相对参照物
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
在这些属性里面还可以加上%和p,例如:
android:toXDelta="100%",表示自身的100%,也就是从View自己的位置开始。
android:toXDelta="80%p",表示父层View的80%,是以它父层View为参照的。

image.png

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 此时我在出差回程的飞机上。有一段时间没有更新我的文字了。心里经常会有很多的感触希望付诸笔端。 这几天很忙碌,身体大...
    霓裳依依阅读 338评论 7 5
  • 来源:复习题1-5 民法:  共有:甲乙丙共买一套楼,出资分别为50%、30%、20%,甲所有权转让,乙丙要优先...
    O_榨菜Chris阅读 90评论 0 0
  • 一个玩笑,我和几个同事便有了一次游天柱山的机会。 这次旅游其实我是很珍惜的,一是这天柱山门票免费,二是旅行社组团只...
    邓阿林阅读 268评论 0 0