• Android 自定义AlertDialog(退出提示框)


    有时候我们需要在游戏或应用中用一些符合我们样式的提示框(AlertDialog)

    以下是我在开发一个小游戏中总结出来的.希望对大家有用.

    先上效果图:

    下面是用到的背景图或按钮的图片

    经过查找资料和参考了一下例子后才知道,要实现这种效果很简单.就是在设置alertDialog的contentView.

    以下的代码是写在Activity下的,代码如下:

    public boolean onKeyDown(int keyCode, KeyEvent event) {
     // 如果是返回键,直接返回到桌面
     if(keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME){
               showExitGameAlert();
     }
     
     return super.onKeyDown(keyCode, event);
    }
    private void showExitGameAlert() {
     final AlertDialog dlg = new AlertDialog.Builder(this).create();
     dlg.show();
     Window window = dlg.getWindow();
            // *** 主要就是在这里实现这种效果的.
            // 设置窗口的内容页面,shrew_exit_dialog.xml文件中定义view内容
     window.setContentView(R.layout.shrew_exit_dialog);
            // 为确认按钮添加事件,执行退出应用操作
     ImageButton ok = (ImageButton) window.findViewById(R.id.btn_ok);
     ok.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
       exitApp(); // 退出应用...
      }
     });
     
            // 关闭alert对话框架
            ImageButton cancel = (ImageButton) window.findViewById(R.id.btn_cancel);
            cancel.setOnClickListener(new View.OnClickListener() {
       public void onClick(View v) {
        dlg.cancel();
      }
       });
    }

    以下的是layout文件,定义了对话框中的背景与按钮.点击事件在Activity中添加.

    文件名为 : shrew_exit_dialog.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
       xmlns:Android="http://schemas.android.com/apk/res/android"
       android:layout_height="wrap_content"
       android:layout_width="wrap_content">
     
     <!-- 退出游戏的背景图 -->
     <ImageView android:id="@+id/exitGameBackground"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/bg_exit_game" />
     
     <!-- 确认按钮 -->
     <ImageButton android:layout_alignBottom="@+id/exitGameBackground"
        android:layout_alignLeft="@+id/exitGameBackground"
        android:layout_marginBottom="30dp"
        android:layout_marginLeft="35dp"
        android:id="@+id/btn_ok"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:background="@drawable/btn_ok" />
     
     <!-- 取消按钮 -->
     <ImageButton android:layout_alignBottom="@+id/exitGameBackground"
        android:layout_alignRight="@+id/exitGameBackground"
        android:layout_marginBottom="30dp"
        android:layout_marginRight="35dp"
        android:id="@+id/btn_cancel"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:background="@drawable/btn_cancel" />
    </RelativeLayout>
  • 相关阅读:
    重读数据结构——严蔚敏C语言版
    Tcp/Ip网络通讯初探
    XMLHttpRequest post 传递多个参数及服务器端读取
    HDOJ 1106 排序 (字符串处理)
    用Java创建数组工具类ArrayTool
    自己动手编写一个VS插件(三)——创建工具栏之一
    「译」JavaScript 的怪癖 1:隐式类型转换
    javascript 中强制执行 toString()
    VS 2008的64位编译环境的安装和使用
    计算机神书『编码:隐匿在计算机软硬件背后的语言』
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4191117.html
Copyright © 2020-2023  润新知