由于android的对话框不是一个View所以它没有setAnimation()这个方法,上网找了很多资料,好多都说的不完整或是抄人家的文章代码,这里我将我的理解总结如下,以后用到这方面的知识的时候以便查阅。
这里要实现一个自定义的对话框,在弹出和消失的过程中使用动画,这样用户的使用体验要好一点。还是先来总结一下需要用到的类:
AlertDialog:提示框
Window:这个类太强大了,现在我还啃不动它
上代码! 主Activity的代码
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class UserGuideActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//捕捉返回按钮
if(keyCode == KeyEvent.KEYCODE_BACK){
final AlertDialog dialog = new AlertDialog.Builder(this).create();
dialog.show();
// 用Window类来设置对话框的布局文件
Window win = dialog.getWindow();
win.setContentView(R.layout.exit_dialog_layout);
win.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) ;// 显示对话框时,后面的Activity不变暗,可选操作。
win.setWindowAnimations(R.style.dialogWindowAnim);// 这里就是指定动画的操作