`
gryphone
  • 浏览: 437939 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

自定义 Dialog

阅读更多
自定义 Dialog

[功能]
android 提供给我们的只有2种Dialog 即 AlertDialog & ProgressDialog 但是 Dialog 有其自身的特点:1. 不是 Activity 2. 开销比 Activity 小得多
鉴于以上的优点 我们就有定制自己Dialog 的需求

[原理]
1. android 系统提供了一个class: Dialog. 而且你可以把自己的工作放在"protected void onCreate(Bundle savedInstanceState)" 在里面先调用系统的"super.onCreate(savedInstanceState)" 其就会保证调用这个method.
2. 至于 Dialog 界面的定制 可以写一个xml 文件 然后 在 "void onCreate(Bundle)" 通过 "setContentView()" 来使之生效
3. Dialog 使用问题: 1. 弹出:show() 2. 取消:dismiss()


[代码]
1. 创建一个 Dialog .
public class CustomDialog extends Dialog {

	public CustomDialog(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	
	 protected void onCreate(Bundle savedInstanceState){
		 super.onCreate(savedInstanceState);
		 
		 setContentView(R.layout.custom_dialog);
		 setTitle("Custom Dialog");

		 TextView text = (TextView)findViewById(R.id.text);
		 text.setText("Hello, this is a custom dialog!");
		 ImageView image = (ImageView)findViewById(R.id.image);
		 image.setImageResource(R.drawable.sepurple);
		 
		 Button buttonYes = (Button) findViewById(R.id.button_yes);
		 buttonYes.setHeight(5);
		 buttonYes.setOnClickListener(new Button.OnClickListener(){

				public void onClick(View v) {
					// TODO Auto-generated method stub
					dismiss();
					
				}
	        });
		 Button buttonNo = (Button) findViewById(R.id.button_no);
		 buttonNo.setSingleLine(true);
		 buttonNo.setOnClickListener(new Button.OnClickListener(){

				public void onClick(View v) {
					// TODO Auto-generated method stub
					dismiss();
					
				}
	        });
	 }
	 
	 //called when this dialog is dismissed
	 protected void onStop() {
		 Log.d("TAG","+++++++++++++++++++++++++++");
	 }
	 

}



2. Dialog 的使用:
public class CustomDialogUsage extends Activity {
	CustomDialog cd;
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        cd = new CustomDialog(this);
        
        
        Button buttonYes = (Button) findViewById(R.id.main_button);
        buttonYes.setOnClickListener(new OnClickListener(){

			public void onClick(View v) {
				// TODO Auto-generated method stub
		        cd.show();
				
			}
        });

    }
    
}


3. Dialog 的界面定制.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_root"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="10dp"
              >
    <ImageView android:id="@+id/image"
               android:layout_width="wrap_content"
               android:layout_height="fill_parent"
               android:layout_marginRight="10dp"
               />
    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:padding="5px" 
        >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:textColor="#FFF"
              />
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:padding="5px" 
        >
    <Button android:id="@+id/button_yes"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text=" Yes "
              android:gravity="center"
              />
    <Button android:id="@+id/button_no"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text=" No "
              android:gravity="center"
              />
    </LinearLayout>
    </LinearLayout>
</LinearLayout>



done!
分享到:
评论
1 楼 hezhou_0521 2010-11-30  
应该截图上的。

相关推荐

    各种自定义Dialog 以及Dialog加载动画

    在Android开发中,自定义Dialog和Dialog加载动画是提升应用用户体验的重要手段。默认的Dialog样式虽然功能齐全,但在追求个性化和美观的今天,往往显得过于简单甚至有些过时。因此,开发者常常需要根据应用的设计...

    android 自定义Dialog提示+动画效果

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求进行个性化设计。本文将深入探讨如何实现一个带有动画效果的自定义Dialog,并以"android 自定义Dialog提示+动画效果"为主题...

    自定义dialog仿ios风格的dialog

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者创建具有独特设计和功能的对话框,以符合应用的品牌风格或提供更丰富的用户体验。本文将深入探讨如何在Android中实现一个仿iOS风格的Dialog,并根据...

    自定义Dialog.zip

    "自定义Dialog.zip" 包含了一个实现七种动画效果的自定义Dialog示例,这将帮助开发者学习如何根据需求创建富有创意的弹出窗口。 首先,我们要了解Dialog的基本结构。Dialog通常由布局文件定义,包括标题(title)、...

    Android:自定义Dialog-Demo

    当系统默认的Dialog样式不能满足应用的特定需求时,开发者常常会选择自定义Dialog来实现更个性化的界面和交互体验。本示例"Android:自定义Dialog-Demo"就是针对这种情况提供的一种解决方案。 首先,我们来看自定义...

    Android支付底部弹窗自定义dialog

    接下来,我们需要创建自定义Dialog类,继承自`AppCompatDialogFragment`。在这个类中,我们将加载上面创建的布局,并实现点击事件处理。 ```java public class BottomPaymentDialog extends ...

    自定义Dialog对话框(实现微信分享对话框)

    在Android开发中,自定义Dialog对话框是一种常见的需求,它能提供更为丰富的用户交互体验,尤其是在需要用户进行特定选择或操作时。本教程将详细讲解如何实现一个类似于微信分享的自定义Dialog对话框。 首先,我们...

    自定义dialog弹出框

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建具有独特外观和交互效果的对话框。本教程将深入探讨如何实现自定义Dialog,包括利用Shape和Selector来定制样式,以及...

    小程序自定义dialog

    在微信小程序中,自定义dialog(对话框)是一种常见的用户交互设计,用于向用户展示重要信息或进行简单操作确认。自定义dialog可以帮助开发者摆脱微信小程序内置组件的限制,实现更符合应用风格和功能需求的设计。本...

    自定义dialog

    "自定义Dialog"则是对系统默认Dialog样式进行扩展和改造,以满足更个性化的界面设计和功能需求。下面我们将深入探讨如何在Android中自定义Dialog。 一、自定义Dialog的基本步骤 1. 创建布局文件:首先,我们需要...

    android自定义Dialog的简单实现

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格或者特定功能来创建具有独特外观和行为的对话框。本篇文章将详细解析如何在Android中实现一个简单的自定义Dialog,以及相关的知识点...

    android自定义dialog嵌套listview

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者创建具有特定布局和功能的对话框,以提供更丰富的用户体验。本篇文章将深入探讨如何在Android中实现一个自定义Dialog并嵌套ListView,同时实现点击事件...

    qml 用item自定义dialog 对话框

    本文将深入探讨如何使用QML中的`Item`来创建一个自定义的`Dialog`组件。 首先,了解`Dialog`的基本概念。在Qt Quick中,`Dialog`是一个用于展示临时信息或进行用户交互的窗口,通常会有一个确定的关闭机制,如点击...

    Android 自定义dialog

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建具有独特设计和交互方式的对话框。本篇将深入探讨如何在Android中实现自定义Dialog,包括基本原理、步骤以及相关的代码...

    自定义Dialog简单解决多级菜单多选问题

    在Android开发中,自定义Dialog是一种常见的用户交互方式,它能提供更为丰富的界面展示和定制化功能。在处理多级菜单多选问题时,传统的做法可能会导致代码复杂度增加,逻辑难以维护。本文将深入探讨如何通过自定义...

    Android利用建造者模式自定义Dialog

    在Android开发中,面对应用程序界面的多样化和个性化需求,自定义Dialog是一种常见的解决方案。建造者模式,作为一种设计模式,能够帮助我们优雅地构建复杂对象,它将对象的创建过程逐步分解,使得创建过程更加灵活...

    自定义dialog实现登录框

    在Android开发中,自定义Dialog是一种常见的用户界面(UI)设计技术,用于提供与用户交互的弹出式窗口。通常,我们使用Dialog来显示重要的信息、提示或进行简单的操作,如登录、注册等。本教程将详细介绍如何在...

    自定义Dialog加ListView

    在本项目中,“自定义Dialog加ListView”就是将`Dialog`与`ListView`结合,创建一个可以展示列表数据的弹出窗口,以提供更加丰富的用户交互体验。 首先,我们需要理解`Dialog`的基本用法。在Android中,我们可以...

Global site tag (gtag.js) - Google Analytics