`
3895177
  • 浏览: 23679 次
社区版块
存档分类
最新评论

Android的Dialog开发和运用

 
阅读更多

本文演示如何开发按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键,进行处理

 

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

 

分享到:
评论

相关推荐

    Android Dialog更改样式及显示位置

    在Android开发中,Dialog是一种常见的用户交互界面,用于在主线程中显示临时信息或进行简单的用户操作。...在实际开发中,根据用户界面设计和用户体验的考虑,灵活运用这些方法能让你的Dialog更具特色。

    Android dialog单选、多选弹窗

    在Android开发中,Dialog是一种常见的用户交互界面...在实际开发中,合理地运用Dialog和PopWindow可以提高应用的用户交互性和易用性。同时,自定义它们可以进一步提升应用的视觉一致性,为用户提供更加舒适的操作体验。

    dialog和fragment的运用

    总的来说,Dialog和Fragment都是Android开发中的强大工具,合理运用它们可以提升应用的用户体验和代码质量。掌握这两者,开发者就能更自如地应对各种UI需求和交互场景。在实际项目中,需要根据具体需求灵活选择和...

    Android+dialog+大合集

    在Android开发中,Dialog是一种非常重要的组件,它用于在用户界面中显示临时的、轻量级的窗口,通常用于向用户展示警告、确认信息或提供交互选项。"Android Dialog 大合集"可能包含了各种类型的Dialog实现,以及相关...

    Android dialog的显示位置、弹出效果、返回键控制、外部点击事件控制功能点集合

    在Android开发中,Dialog是一种非常常见的用户界面组件,用于向用户展示临时信息或者进行简单的交互。本篇文章将详细探讨如何实现Android Dialog的显示位置控制、弹出效果定制、返回键处理以及外部点击事件的管理。 ...

    android dialog

    在Android开发中,Dialog是一个非常重要的组件,它用于在用户界面中显示临时的、轻量级的窗口,通常用于向用户展示信息、询问确认或进行交互。本篇将深入探讨Android Dialog的相关知识点,并结合标签“源码”和...

    Android Dialog 多种 弹出框

    本篇内容将深入探讨`Dialog`在Android中的多种实现方式及其应用,以帮助开发者更好地理解和运用。 1. **基本对话框** Android中最基础的`Dialog`类型是`AlertDialog`,它通常包含一个标题、一个消息和一组按钮。...

    Android(Dialog).zip_android_android Dialog

    在Android开发中,Dialog是...理解并熟练运用Dialog,对于提升用户体验和优化应用程序至关重要。在实际开发中,根据项目需求选择合适的Dialog类型,并利用Builder模式进行个性化定制,是每个Android开发者必备的技能。

    Android eclipse开发各种dialog窗口详细代码,初学Android必看

    在Android开发中,Dialog是一种非常重要的用户界面组件,它用于在主界面之上显示临时的通知或交互窗口。在Eclipse环境中,Android...同时,别忘了根据项目需求灵活运用和自定义Dialog,使其更符合应用的设计风格。

    Android Dialog 大集合

    在实际开发中,合理运用这些Dialog可以极大地提高用户体验,使应用更具吸引力。通过研究“Android Dialog 大集合”,开发者不仅可以掌握Dialog的基本使用,还能了解如何根据应用场景进行个性化设计,从而提升应用的...

    7种形式的Android Dialog使用实例

    每种Dialog的使用都需要考虑用户体验,合理运用能够提高应用的交互性和易用性。在实际开发中,可以根据需求选择合适的Dialog类型,并自定义其样式和行为,以满足特定场景的需求。同时,注意处理Dialog的生命周期,...

    Android dialog 综合展示

    在Android开发中,对话框...总之,Android Dialog是提高用户体验的关键工具,合理运用各种类型的Dialog可以为用户提供更加直观、友好的交互体验。在设计和实现时,不仅要考虑功能需求,还要注重界面美观和用户体验。

    Android之对话框Dialog(博客源码)

    在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时信息或者接收用户的输入。在给定的“Android之对话框Dialog(博客源码)”资源中,我们可以学习到如何在Android应用中实现三种...

    Android 通过自定义Dialog来理解接口回调callback

    在Android开发中,自定义Dialog是一种常见的用户交互方式,它能提供更为丰富的界面展示和定制化功能。本文将深入探讨如何通过自定义Dialog来...通过实践和学习,你将能够熟练地运用这些技巧,提升你的Android开发技能。

    android 自定义dialog

    在Android开发中,Dialog是一种非常常见的用户交互组件,它用于在主界面之上显示临时的通知或进行简单的用户交互。自定义Dialog则可以根据应用的特定需求,打造出具有独特样式和功能的对话框,提升用户体验。本篇...

    Android dialog对话框用法实例.rar

    在Android开发中,Dialog对话框是一种非常常见的组件,它用于在主线程中向用户展示一些...通过分析和学习“Android dialog对话框用法实例.rar”中的代码,开发者可以深入理解Dialog的工作原理,从而在项目中灵活运用。

    android dialog的使用

    在Android开发中,Dialog是一种非常重要的组件,它用于在用户界面中显示临时信息或与用户进行交互。Dialog通常不会占据整个屏幕,而是悬浮在主活动之上,提供了一种优雅的方式来提醒用户或者请求用户做出选择。在...

    Android的各种Dialog的实现

    在Android开发中,Dialog是一种非常重要的用户界面组件,它用于在主界面之上显示临时的通知或交互窗口,以向用户展示信息、...在实际开发中,根据应用场景灵活运用这些Dialog,可以提升用户体验,使应用更具吸引力。

    Android中Dialog使用详解

    在Android开发中,Dialog是一种非常重要的组件,它用于在用户界面之上显示临时的窗口,通常用来提示用户一些信息或者请求用户的确认操作。本篇将详细讲解如何在Android中使用AlertDialog,以及相关的知识点。 首先...

    Android课件(4Dialog).zip

    在Android开发中,Dialog是一种非常重要的组件,它用于在用户界面中显示临时的、轻量级的窗口,通常用于向用户展示警告、...通过深入学习和实践这些内容,开发者能够更好地掌握如何在Android应用中灵活运用Dialog组件。

Global site tag (gtag.js) - Google Analytics