`
ipjmc
  • 浏览: 705904 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自定义Dialog UI

阅读更多

        本例中CustomDialog继承Dialog,使用custom_dialog.xml布局文件。


custom_dialog.xml,这里就随便布局了一下

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="10dp" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="5px" >

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:textColor="#FFF" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="5px" >

            <Button
                android:id="@+id/button_yes"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text=" Yes " />

            <Button
                android:id="@+id/button_no"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text=" No " />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
 

 

main.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button
	android:id="@+id/main_button"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="click to start an Dialog"
    />
</LinearLayout>
 

 

CustomDialog.java,CustomDialog继承Dialog,使用起来和Activity差不多,通过setContentView()指定使用的布局文件,剩下的就和Activity差不多了,就是一些findViewById()和setListener()。

 

package com.android.CustomDialog;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

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","+++++++++++++++++++++++++++");
	 }
	 

}
 

CustomDialogUsage.java,这里重写了Activity的onCreateDialog()方法创建Dialog(),并为Dialog设置了OnDismissListener,没什么特别的。

 

package com.android.CustomDialog;

import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class CustomDialogUsage extends Activity {

	OnDismissListener lis;
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        lis  =  new OnDismissListener() {
			
			@Override
			public void onDismiss(DialogInterface dialog) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), 
                        ((CustomDialog)dialog).toString(), 
                        Toast.LENGTH_SHORT) 
                .show();
			}
		};
		
        Button buttonYes = (Button) findViewById(R.id.main_button);
        buttonYes.setOnClickListener(new OnClickListener(){

			public void onClick(View v) {
				// TODO Auto-generated method stub
		        showDialog(0);
			}
        });

    }
    
    @Override
    protected Dialog onCreateDialog(int id) {
    	// TODO Auto-generated method stub
    	Dialog d = new CustomDialog(this);
    	d.setOnDismissListener(lis);
    	return d;
    }
    
    @Override
    protected void onPrepareDialog(int id, Dialog dialog) {
    	// TODO Auto-generated method stub
    	super.onPrepareDialog(id, dialog);
    }
    
}
 

 

分享到:
评论

相关推荐

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

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

    自定义Dialog.zip

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

    Android 自定义dialog

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

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

    要创建一个自定义Dialog,我们首先要创建一个新的布局文件,这个文件将定义Dialog的UI结构。在“res/layout”目录下创建一个XML文件,例如`custom_dialog.xml`,并设计出与微信分享对话框类似的布局,可能包括标题、...

    自定义dialog实现登录框

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

    android自定义dialog下载

    在Android开发中,自定义Dialog是一种常见的需求,它允许...自定义Dialog不仅可以增强用户体验,还能使应用的UI更加个性化。在实际开发中,还可以结合其他技术,如动画、触摸反馈等,进一步提升Dialog的质量和交互性。

    Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    在Android开发中,自定义Dialog是一种常见的需求,用于提供一种轻量级的用户交互界面,如提示信息或者进行选择操作。本示例是关于如何创建一个具有多选功能的Dialog,结合了Dialog、ListView和CheckBox的使用。下面...

    自定义Dialog仿IOS底部弹出

    本示例“自定义Dialog仿IOS底部弹出”就是一个典型的例子,它旨在模仿iOS设备上常见的底部弹出对话框。这种设计通常用于展示选项或者进行简单的用户操作,如选择、确认或取消。 首先,让我们了解一下自定义Dialog的...

    各种自定义dialog

    在Android开发中,自定义Dialog是一种常见的需求,用于提供用户交互和信息展示的窗口。"各种自定义dialog"这个主题涵盖了几个重要的自定义Dialog类型,包括自定义对话框、多选对话框、单选对话框以及最简单的对话框...

    Android界面之几种常用的自定义Dialog

    本文将深入探讨几种常用的自定义Dialog的实现方法,以及如何通过自定义来满足各种复杂的UI需求。 首先,我们了解下Dialog的基本概念。Dialog在Android中是一种轻量级的窗口,通常用于显示临时信息或者请求用户的...

    android 自定义dialog Demo

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的设计风格和功能需求创建具有独特外观和交互的对话框。这篇博客“android 自定义dialog Demo”将深入探讨如何在Android应用程序中实现自定义...

    Android自定义Dialog 界面比较好看

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据项目需求创建具有独特设计和功能的对话框,以提供更好的用户体验。标题“Android自定义Dialog 界面比较好看”表明我们将探讨如何创建一个视觉上...

    自定义构建者dialog.rar

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将深入探讨如何利用Android的Builder模式来实现自定义Dialog,并结合"自定义构建者dialog.rar"中的...

    自定义dialog

    在给定的标题“自定义dialog”和描述“自定义loadingDialog,重写系统dialog实现自定义”中,我们可以看出这个话题主要关注如何根据需求创建一个个性化的加载对话框(`LoadingDialog`)。 `Dialog` 是 Android SDK ...

    安卓Dialog对话框相关-自定义对话框工具类简单好用UI自定义代码简洁.zip

    本资源“安卓Dialog对话框相关-自定义对话框工具类简单好用UI自定义代码简洁.zip”主要关注的是如何自定义Dialog,使UI更加符合应用需求,并且保持代码简洁高效。 1. **Dialog的基础使用** Android中的Dialog通常...

    Android自定义Dialog显示GridView

    因此,我们需要创建自定义Dialog以实现特定的UI和功能。这通常涉及到继承`DialogFragment`或`AlertDialog.Builder`,然后在`onCreateView()`方法中设置布局。 2. **创建Dialog布局** 在自定义Dialog时,首先需要...

    【自定义Dialog】封装IOS样式的Dialog--Android Studio

    创建自定义Dialog的第一步是创建一个新的布局文件,这个布局文件将定义Dialog的UI元素和结构。在Android Studio中,我们可以在res/layout目录下创建一个XML文件,例如`dialog_ios_style.xml`,并设计符合iOS样式的...

    QT自定义dialog提示窗

    本项目“QT自定义dialog提示窗”着重于通过纯代码方式创建对话框,无需使用UI文件。下面将详细阐述相关知识点。 1. **自定义对话框的创建**: 在QT中,可以继承`QDialog`类来创建自定义对话框。`QDialog`是QT中的...

    自定义Dialog 显示正在加载动画效果 progressDialog

    在Android开发中,自定义Dialog是一种常见的用户交互方式,它能提供更为丰富的界面展示和功能扩展,以满足特定的应用场景需求。本篇我们将深入探讨如何创建一个自定义的Dialog,使其在显示时不会使Activity背景变暗...

    android自定义dialog加载窗

    总的来说,"android自定义dialog加载窗"涉及到Android应用开发中的UI设计、动画实现、项目结构规划以及兼容性和性能优化等多个方面,是提升用户体验的重要技术手段。通过学习和实践这些知识,开发者可以创建出既美观...

Global site tag (gtag.js) - Google Analytics