1.监听系统返回事件
//监听系统返回按钮 启动对话框动画
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//如果单机了返回按钮
if(keyCode==KeyEvent.KEYCODE_BACK){
//创建对话框
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.dislog_layout);//设置对话框布局
b1=window.findViewById(R.id.btn_true);//获取对话框确定按钮
b2=window.findViewById(R.id.btn_quxiao);//获取对话框取消按钮
initEvent();//执行点击事件
return false;
}
return super.onKeyDown(keyCode, event);
}
/***
* 处理对话框事件
* */
private void initEvent() {
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dlg.dismiss();//设置对话框消失
finish();//关闭当前界面
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dlg.dismiss();//设置对话框消失
}
});
}
2.弹出框界面代码(dislog_layout)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
>
<!-- 标题-->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:text="@string/textTitle"
android:gravity="center"
android:textColor="@color/colorblack"
android:textSize="16sp"
>
</TextView>
<!-- 内容-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="50dp"
android:paddingTop="50dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:text="@string/textContext"
android:textColor="@color/blue"
android:textSize="20sp"
></TextView>
<!-- 线-->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/yellow">
></View>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<!-- 确定按钮-->
<Button
android:id="@+id/btn_true"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:text="@string/textTrue"
android:textColor="@color/colorPrimaryDark"
android:textSize="20sp"
></Button>
<!-- 线-->
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/yellow">
></View>
<!-- 取消按钮-->
<Button
android:id="@+id/btn_quxiao"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:text="@string/textNo"
android:textColor="@color/colorPrimaryDark"
android:textSize="20sp"
></Button>
</LinearLayout>
</LinearLayout>
动画文件(res/anim文件夹)
dialog_enter
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--进入的动画-->
<!-- 从上到中间-->
<translate
android:duration="200"
android:fromXDelta="-100%"
></translate>
</set>
dialog_exit
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--出去的动画-->
<!--从中间移动到底部-->
<translate
android:duration="200"
android:fromYDelta="0"
android:toYDelta="100%"
></translate>
</set>