Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 276|回复: 0

[默认分类] Android使用自定义AlertDialog(退出提示框)

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-5-30 13:23:28 | 显示全部楼层 |阅读模式
      
    有时候我们需要在游戏或应用中用一些符合我们样式的提示框(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>就这样经过了以上几步,就可以实现自定义AlertDialog的效果了. 用同样的思路可以实现其它更复杂的效果.

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-5-17 19:49 , Processed in 0.608433 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表