本文演示如何开发按BACK弹出退出游戏的Dialog对话框。

自定义Dialog需要一个Style文件,Layout文件。

style文件用来设置对话框的样式(主题)。

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="DialogExit" parent="@android:Theme.Dialog">        <item name="android:windowFrame">@null</item>        <!--是否有标题-->        <item name="android:windowNoTitle">true</item> <!--对话框是否浮动--><!-- 如果不是浮动,对话框就会变成全屏-->        <item name="android:windowIsFloating">true</item>        <!--对话框是否有遮盖-->        <item name="android:windowContentOverlay">@null</item>        <!--设置是否背景模糊-->        <item name="android:backgroundDimEnabled">false</item>        <!--背景灰度-->  <item name="android:backgroundDimAmount">0.1</item>  <!--此对话框的背景-->  <item name="android:windowBackground">@drawable/rect</item>    </style></resources>

Layout文件用来设置对话框的按钮文字等信息

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:gravity="top"    >    <RelativeLayout        android:id="@+id/relativeLayout1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:padding="5dip" >        <TextView            android:id="@+id/dialog_eixt_message"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:padding="5dip"            android:text="消息"            android:textColor="#FFFFFF" />                <TableRow            android:id="@+id/dialog_eixt_tablerow"           android:layout_width="fill_parent"       android:layout_height="wrap_content"       android:layout_below="@+id/dialog_eixt_message"       android:layout_centerHorizontal="true"           android:layout_centerVertical="true"           android:gravity="center_horizontal">                                 <Button            android:id="@+id/dialog_eixt_okbutton"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="@drawable/button"            android:text="确定"            android:textColor="#ffffff"            android:textSize="15sp"             android:paddingLeft="10dip"            android:paddingRight="10dip"            android:paddingTop="5dip"            android:paddingBottom="5dip"/>        <Button            android:layout_marginLeft="25dip"            android:id="@+id/dialog_eixt_cancelbutton"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="@drawable/button"            android:text="取消"            android:textColor="#ffffff"            android:textSize="15sp"             android:paddingLeft="10dip"            android:paddingRight="10dip"            android:paddingTop="5dip"            android:paddingBottom="5dip"            />                  </TableRow>                    </RelativeLayout></RelativeLayout>

接下来就是在代码中的运用!

新建一个类,继承DIalog,然后对文字信息进行修改,以及监听按钮之后的处理

package com.imf.view.util;import com.imf.R;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;/** * 退出游戏对话框 */public class DialogExit extends Dialog {Context context;    public DialogExit(Context context) {        super(context);        // TODO Auto-generated constructor stub        this.context = context;    }    public DialogExit(Context context, int theme){        super(context, theme);        this.context = context;    }        @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);//加载layout布局文件        this.setContentView(R.layout.dialog_exit);                TextView info = (TextView) findViewById(R.id.dialog_eixt_message);        info.setText("您确定退出游戏?");        Button btnok = (Button) findViewById(R.id.dialog_eixt_okbutton);          btnok.setOnClickListener(new Button.OnClickListener() {              public void onClick(View view) {  //关闭进程,就是关闭游戏。            android.os.Process.killProcess(android.os.Process.myPid());            }          });         Button btnexit = (Button) findViewById(R.id.dialog_eixt_cancelbutton);          btnexit.setOnClickListener(new Button.OnClickListener() {              public void onClick(View view) {  //如果按的是取消,那么就dismiss();            dismiss();            }          });    }    }

在某Activity上面监听按下back键,进行处理

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode == KeyEvent.KEYCODE_BACK) {//在这里设置style主题文件。 DialogExit dialog = new DialogExit(MainActivity.this, R.style.DialogExit); dialog.show();return true;}return super.onKeyDown(keyCode, event);}

更多相关文章

  1. FileProvider
  2. Android(安卓)IBinder机制简单介绍
  3. Android添加多语言
  4. Android(安卓)studio导出jar包
  5. android―label窗口――基础编
  6. Android(安卓)第二天重置版
  7. Android(安卓)启动分析-init进程&init.rc[转]
  8. Android使用ProgressBar简单实现进度条
  9. Android仿易信界面SlidingMenu左右滑动

随机推荐

  1. Android选项卡(TabWidget)应用
  2. android中加载assets中的资源文件
  3. 【翻译】(14)Stable APIs
  4. Android(安卓)Untold Stories
  5. [Android]安装使用SDK Manager更新时出现
  6. android 中调用接口发送短信
  7. AndroidStudio3.0多渠道打包
  8. 运行时改变Button的android:drawableTop
  9. android binder 面试
  10. android中四个典型动画设置