Android--对话框显示和退出动画

匿名 (未验证) 提交于 2019-12-03 00:36:02

效果:对话框会从顶部滚到中间显示,点击取消就会从中间滚到下方退出界面

实现:

1.在res下创建anim文件夹,然后创建两个Animation resourse file文件:

dialog_enter.xml:

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android">     <!--从上进入到中间-->     <translate         android:duration="200"         android:fromYDelta="-100%"/>  </set>

dialog_out.xml:

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android">     <!--从中间到底部退出-->     <translate android:fromYDelta="0"         android:toYDelta="100%"         android:duration="200"/> </set>

2.在style.xml文件里设置对话框的动画样式:

<style name="dialog_animation" parent="android:Animation">     <!--进入时的动画-->     <item name="@android:windowEnterAnimation">@anim/dialog_enter</item>     <!--退出时的动画-->     <item name="@android:windowExitAnimation">@anim/dialog_out</item> </style> 

3.在Activity中创建一个dialog,dialog设置syle样式:

public class MainActivity extends AppCompatActivity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);     }      @Override     public boolean onKeyDown(int keyCode, KeyEvent event) {         if (keyCode==KeyEvent.KEYCODE_BACK){             AlertDialog dialog=new AlertDialog.Builder(this)                     .setTitle("123")                     .setMessage("dialog显示和退出动画")                     .setPositiveButton("确认", new DialogInterface.OnClickListener() {                         @Override                         public void onClick(DialogInterface dialog, int which) {                             dialog.dismiss();                         }                     })                     .setNegativeButton("取消",null)                     .create();              dialog.show();             Window window=dialog.getWindow();             window.setGravity(Gravity.CENTER);             window.setWindowAnimations(R.style.dialog_animation);          }         return super.onKeyDown(keyCode, event);     } }


运行报下面的错误:

Error: style attribute '@android:attr/windowExitAnimation' not found

解决方法:

在gradle.properties中添加 android.enableAapt2=false

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!